为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript获取到的位置有错

JavaScript获取到的位置有错

慕盖茨4494581 2018-10-18 14:10:27
高德地图和JavaScript调用navigator.geolocation 方法获取所在位置的经纬度,发现都在杭州(本人在宁波)。贴上代码navigator.geolocation.getCurrentPosition(    function (pos) { // 如果成果则执行该回调函数         alert(            '  经度:' + pos.coords.latitude +                     '  纬度:' + pos.coords.longitude +            '  高度:' + pos.coords.altitude +                      '  精确度(经纬):' + pos.coords.accuracy +            '  精确度(高度):' + pos.coords.altitudeAccuracy +                       '  速度:' + pos.coords.speed         );     }, function (err) { // 如果失败则执行该回调函数         alert(err.message);     }, { // 附带参数         enableHighAccuracy: false, // 提高精度(耗费资源)         timeout: 3000, // 超过timeout则调用失败的回调函数         maximumAge: 1000 // 获取到的地理信息的有效期,超过有效期则重新获取一次位置信息     } );获取到的经纬度30.267443,120.152792以上情况是用谷歌浏览器手机模拟出现的,如果不用手机模拟,高德地图获取到的位置是正确的。
查看完整描述

1 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

请看 html5 关于 Geolocation API 规范的描述:

The API itself is agnostic of the underlying location information sources. Common sources of location information include Global Positioning System (GPS) and location inferred from network signals such as IP address, RFID, WiFi and Bluetooth MAC addresses, and GSM/CDMA cell IDs, as well as user input. No guarantee is given that the API returns the device's actual location.

来源

这已经指明了这个API返回位置的源信息来自于GPS、IP、RFID、WiFi、蓝牙MAC地址、GSM/CDMA,甚至户输入。并不保证得到结果是设置所在的实际位置。因此,如果源信息设备能提供GPS信号则返回的结果就准确,如果测试模拟的设备根本获取不到GPS信息,那么只能通过其他允许的信号源了,就这里而言很可能是IP地址。精度当然差很多


查看完整回答
反对 回复 2018-11-05
  • 1 回答
  • 0 关注
  • 514 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信