html5 里面引入了geolocation的api可以帮助用户获得所在的地理位置,它不仅可以标示出当前的经纬度,还可以与google map api结合使用来在地图上标示出当前位置。

html代码,主要就是2大块,第一部分的容器用于放google地图和标示位置,第二部分用于显示精确的经纬度以及精度(误差)。

1.

2.

3.

4.

5.

6.

在页面上使用google map,获取浏览器的当前位置

7.

8.

9.

13.

14.

15.

16.

17. hello,google map!

18.

19.

20.

21.

22.

23.

您的浏览器显示了您当前的地理位置信息是:

24.

25.

26.

27.

javascript方法,主要就是用于绘制地图(以及标示位置),以及给出了当获取位置成功或者失败时候的回调函数定义:

1. //这是初始化方法,用来绘制google地图

2. function init() {

3. console.log("entering the init() method");

4. //首先必须判断浏览器是否有geolocation属性,因为html5 才新增了这个属性,不是所有浏览器都支持

5. if (navigator.geolocation) {

6. //如果浏览器支持geolocation,则使用geolocation的getcurrentlocation方法来取得用户当前的地理位置,

7. //并且在成功取得之后调用show_map()回调函数

8. console.log(' browser support geolocation ');

9. navigator.geolocation.getcurrentposition(show_map,handle_error ,null);

10. } else {

11. console.log(' browser doesnt support geolocation ');

12. }

13.

14. }

15.

16.

17. //这是一个回调函数,用于当geolocation成功取得用户浏览器所在的地理位置时候的响应,它吧所有的位置信息封装在position中

18. //所以我们就需要解析position来取得用户的详细信息

19. function show_map(position) {

20.

21. // 取得当前的地理位置

22. var coords = position.coords;

23.

24. //part 1; 显示用户的精确位置信息

25. //取得页面上用于显示精确位置信息的

26. var positioninfo=document.getelementbyid("positioninfo");

27. var positionstring="经度: "+coords.longitude+"
";

28. positionstring+="维度: "+coords.latitude+"
";

29. var altitude=coords.altitude;

30. if( altitude!=null){

31. positionstring+="海拔高度"+coords.altitude+"
";

32. }

33. positionstring+="经纬度精确到:"+coords.accuracy+"米"+"
";

34. positioninfo.innerhtml=positionstring;

35. //part 2; 在google地图上显示浏览器的当前位置

36. // 设定地图参数,将用户的当前位置的维度和精度都设定为地图的中心点

37. var latlng = new google.maps.latlng(coords.latitude, coords.longitude);

38. var myoptions = {

39. // 设定放大倍数

40. zoom : 14,

41. // 将地图的中心点设定为指定的坐标点

42. center : latlng,

43. // 指定地图的类型,这里选择的是街道地图

44. maptypeid : google.maps.maptypeid.roadmap

45. };

46. // 创建地图并在"map"p中显示,吧这个地图叫做map1

47. var map1;

48. map1 = new google.maps.map(document.getelementbyid("map"), myoptions);

49. // 在地图上创建标记

50. var marker = new google.maps.marker({

51. //标注刚才创建的标注点,因为标注点是由当前的经纬度设定的,所以表示了当前位置

52. position : latlng,

53. //标注在哪张地图上,我们创建了map1作为google map,所以标注在map1上

54. map : map1

55. });

56. // 设定标注窗口,并且指定该窗口的注释文字

57. var infowindow = new google.maps.infowindow({

58. content : "这是charles的浏览器的当前位置!"

59. });

60. // 打开标注窗口

61. infowindow.open(map1, marker);

62.

63. }

64.

65.

66.

67. //这是第二个回调函数,用于当geolocation获取用户浏览器所在的地理位置失败时候的响应

68. //error对象封装了所有的可能出现的无法获得地理位置的错误信息,并且html5为其预留了错误码,可以取值{1,2,3}

69. function handle_error(error){

70. var errortypes={

71. 1:'位置服务被拒绝',

72. 2:'获取不到位置信息',

73. 3:'获取信息超时'

74. };

75. console.log(errortypes[error.code] + ":,不能确定你的当前地理位置");

76. }

要显示结果,必须让用户开启共享位置功能,因为这是隐私,我测试了下opera 11和firefox 10 ,google chrome都可以。

opera 11开始就需要用户选择是否要共享地理位置:

然后要签一份用户协议:

对于firefox浏览器,也是需要得到用户共享自己位置的许可:

最终,就可以显示用户当前位置了(实际是你的ip暴露了你的信息),比如我住在上海广兰路地铁站附近,所以显示结果如下:

摘自 平行线的凝聚

html 获取用户地理位置,HTML5 geolocation API获得用户当前地理位置相关推荐

  1. html5获取城市,HTML5 geolocation API获得用户当前城市名

    HTML5 Demo: geolocation var geocoder = null; function addAddressToMap(response) { if (!response || r ...

  2. HTML5 Geolocation API

    HTML5 Geolocation API 封装在 navigator.geolocation 属性里,各种接口即是 navigator.geolocation 对象的方法. 1.getCurrent ...

  3. HTML5 Geolocation API : 实时跟踪应用

    getCurrentPosition与watchPosition watchPosition会监视你的移动,并在位置改变时向你报告位置.watchPPosition方法看上去确实与getCurrent ...

  4. html浏览位置坐标,HTML5教程 | HTML5地理定位(GeoLocation API)

    HTML5 GeoLocation API(地理定位API)可以获取用户所在的地理位置.由于安全的原因,在使用HTML5 GeoLocation的时候,会弹出对话框让用户决定是否共享他们所在的位置,只 ...

  5. HTML5 地理位置定位(HTML5 Geolocation)原理及应用 (调用GPS)

    地理位置(Geolocation)是 HTML5 的重要特性之一,提供了确定用户位置的功能,借助这个特性能够开发基于位置信息的应用.今天这篇文章向大家介绍一下 HTML5 地理位置定位的基本原理及各个 ...

  6. html5 地理api,HTML5地理定位-Geolocation API

    HTML5提供了一组Geolocation API,来自navigator定位对象的子对象,获取用户的地理位置信息 Geolocation API使用方法: 1.判断是否支持 navigator.ge ...

  7. HTML5 Geolocation用来定位用户的位置。

    HTML5 Geolocation用来定位用户的位置. 定位用户的位置 HTMl5 Geolocation API用来得到用户的地理位置. 由于这个可能和个人隐私相关.除非用户同意否则不能使用. 浏览 ...

  8. 地理位置 百度地图api

    1 章节目录 1.1 目标 地理位置 百度地图 API 1.2 重点 地理位置 百度地图 API 1.3 难点 百度地图 API 2 地理位置 地理定位在日常生活中应用比较广泛,如互联网打车.在线地图 ...

  9. HTML5 Geolocation(地理定位)简介

    HTML5 Geolocation(地理定位)用于定位用户的位置. 定位用户的位置 HTML5 Geolocation API 用于获得用户的地理位置. 鉴于该特性可能侵犯用户的隐私,除非用户同意,否 ...

最新文章

  1. Finding iPhone Memory Leaks: A “Leaks” Tool Tutorial[转]
  2. 智能睡眠评估系统(包含:睡眠数据特征工程、睡眠评分、睡眠聚类、睡眠可视化分析、睡眠结论存储)
  3. Android SnackBar:你值得拥有的信息提示控件
  4. gps数据存储mysql_gps数据存储mysql
  5. 向linux内核版本号添加字符/为何有时会自动添加“+”号
  6. 直角三角形知道两边求角度_每日一讲:解直角三角形(3.21)
  7. centos7常用工具安装手册
  8. 日历控件,可运行在XHTML1.0下
  9. PowerPoint教程资源专题资源免费下载整理合集收藏
  10. LM2596电源降压调整器(150KHZ 3A)原理图中文版
  11. 2018最新JAVA基础面试题和高级面试题
  12. DoEvents 方法使用小结
  13. 关于Nginx服务器的一些粗略认识
  14. 知识图谱嵌入|KG-BERT代码 ConvE ConvR
  15. firebox - firebug, 解析json,httpRequest模拟请求等插件
  16. python简单程序
  17. html 案例 --- 网页简历 、简历信息填写
  18. 在macOS下启用CGO_ENABLED的交叉编译Go语言项目生成Windows EXE文件
  19. 开启Intel VT-x
  20. linux卷查看命令,[命令] Linux 命令组 lvm(逻辑卷管理)

热门文章

  1. 众昂矿业:萤石矿产战略价值日益突出
  2. Flink1.11 intervalJoin watermark生成,状态清理机制源码理解Demo分析
  3. python遍历多层嵌套列表_python遍历多层嵌套列表
  4. xenserver 服务器退不出维护模式,XenServer 常见故障处理
  5. 千亿5G投资,谁会是新的赢家?
  6. 15分钟扫空5000个冰墩墩,新晋顶流脱销背后,谁是最大赢家?
  7. posital倾角传感器
  8. 基于html+css的盒子内容旋转180度
  9. 发那科机器人示教盒复位键是哪个_发那科示教器维修 大连发那科机器人伺服放大器维修 伺服电机维修...
  10. mothur reverse.seqs 将序列反向互补