navigator.geolocation.getCurrentPosition返回错误的结果

时间:2018-07-14 05:20:38

标签: javascript html5 geolocation

当我以通常的方式使用地理位置服务时,例如:

if (navigator.geolocation) {
             navigator.geolocation.getCurrentPosition(showPosition1,errLocation, {maximumAge:0, timeout:40000, enableHighAccuracy:true});
            }
function showPosition1(position) {console.log(position.coords)}

我得到的结果非常不正确。当我使用position.coord.accuracy检查时,显示为260公里!那离我很远。

您知道为什么即使启用了highAccuracy且浏览器允许定位和所有内容时仍会出现这种情况吗?

我正在使用移动数据的热点连接到笔记本电脑上的Internet。这会是个大问题吗?

1 个答案:

答案 0 :(得分:0)

GeoLocation功能使用多种方法来确定您的位置。除了标准方式外,Chrome还至少有一种。

  • GPS坐标-如果可用,这些坐标最准确。
  • Geo-IP-尝试查找IP地址并找到其位置。众所周知这是非常不准确的
  • (Chrome)访问点名称-Google Maps van还收集访问点(SSID)及其位置。 Chrome会使用您当前的访问点尝试查找您的位置。

如果您的接入点移动了,它可能会丢掉东西。如果您必须诉诸Geo-IP,那么准确性就是一个小问题。

此外,使用代理服务器或VPN将使Geo-IP无法使用。