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

use*_*948 5 html javascript geolocation

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

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

我得到了一个非常糟糕的结果。当我使用 position.coord.accuracy 检查时,它显示为 260 公里!那离我所在的地方很远。

知道为什么会出现这种情况,即使启用了 highAccuracy 并且浏览器允许位置和所有内容?

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

Jer*_*her 4

地理位置功能使用多种不同的方式来确定您的位置。除了标准方式之外,Chrome 还至少附加了一种方式。

  • GPS 坐标——如果有的话,这些坐标是最准确的。
  • Geo-IP——尝试查找 IP 地址并找到其位置。众所周知,这是非常不准确的
  • (Chrome) 接入点名称 - Google 地图货车还收集接入点 (SSID) 及其位置。Chrome 将使用您当前的接入点来尝试查找您的位置。

如果您的接入点移动了,它可能会造成一些问题。如果您必须求助于 Geo-IP,那么准确性就很糟糕。

此外,使用代理服务器或 VPN 将使 Geo-IP 失去作用。