html5应用 调用百度地图API 为什么在手机端

 我来答
云南新华电脑学校
2018-04-05 · 百度认证:云南新华电脑职业培训学校官方账号
云南新华电脑学校
云南新华电脑学校是经云南省教育厅批准成立的省(部)级重点计算机专业学校,采用三元化管理模式,教学设备先进,师资雄厚学生毕业即就业,学院引进了电商企业入驻,创建心为电商创业园区,实现在校即创业
向TA提问
展开全部

最近项目需要,稍微研究一下html5获取当前地理位置的问题。

获取当前位置的经纬度很简单,一句代码就搞定

[javascript] view plain copy

  • navigator.geolocation.getCurrentPosition(function (position) {  

  • longitude = position.coords.longitude;  

  • latitude = position.coords.latitude;  

  • });  


  • 然后查阅百度地图API,很easy,也是几句代码就搞定的事
  • [javascript] view plain copy

  • var map = new BMap.Map("allmap");<pre name="code" class="javascript">        var point = new BMap.Point(longitude,latitude);<pre name="code" class="javascript">        var geoc = new BMap.Geocoder();  

  • [javascript] view plain copy

  • geoc.getLocation(point, function(rs){  

  • var addComp = rs.addressComponents;  

  • alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber);  

  • });    




  • 好的,本以为到此结束,结果实际测试发现有点问题,显示的位置与我的真正位置偏差大约两三公里左右。
  • 一开始以为是html5获取经纬度的偏差问题,然而并不是

    然后开始查资料,求助强大的度娘,然后无意中发现了一个叫做 坐标转换 的东西,一搜索才知道,原来百度地图对坐标进行了深度封装,必须通过他提供的接口进行坐标转换才行

    (当然了,还是因为我以前没接触过百度地图,所以不知道这点知识,常用百度地图api的应该对这个很熟悉的吧)

    好了,废话不多说,上最终代码吧

    [javascript] view plain copy

  • var map = new BMap.Map("allmap");  

  • var longitude, latitude;  

  • navigator.geolocation.getCurrentPosition(function (position) {  

  • longitude = position.coords.longitude;  

  • latitude = position.coords.latitude;  

  • });  

  • setTimeout(function () {  

  • var gpsPoint = new BMap.Point(longitude, latitude);  

  • BMap.Convertor.translate(gpsPoint, 0, function (point) {  

  • var geoc = new BMap.Geocoder();  

  • geoc.getLocation(point, function (rs) {  

  • var addComp = rs.addressComponents;  

  • alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber);  

  • });  

  • });  

  • }, 3000);  

  • 这段代码依赖两个包
  • [html] view plain copy

  • <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=秘钥"></script>  

  • <script type="text/javascript" src="http://developer.baidu.com/map/jsdemo/demo/convertor.js"></script>  

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式