navigator.geolocation 给出错误的结果

Posted

技术标签:

【中文标题】navigator.geolocation 给出错误的结果【英文标题】:navigator.geolocation giving wrong results 【发布时间】:2015-02-20 08:41:39 【问题描述】:

我正在开发一个可以使用地理位置来做很酷的事情的 web 应用程序,现在我只是迷路了,因为 navigator.geolocation 给了我错误的结果。

我的调试代码:

navigator.geolocation.getCurrentPosition(
    function(p) console.log(p.coords),
    function(p) console.log('bug'),
    enableHighAccuracy: true
)

结果:

Coordinates speed: null, heading: null, altitudeAccuracy: null, accuracy:  140843, altitude: null…
    accuracy: 140843
    altitude: null
    altitudeAccuracy: null
    heading: null
    latitude: 46.1902742
    longitude: 6.1464840999999995
    ...

问题是:坐标完全错误。 I'm not in Geneva at all。我在another part of Switzerland.

这个问题发生在我的电脑上,在我的朋友电脑上,在 linux 电脑上,在 windows 电脑上,在 mac 电脑上。

有什么问题? navigator.geolocation 过时了吗?不在瑞士工作?我只是错过了什么?

【问题讨论】:

您是否一直使用相同的互联网连接?是***吗? Lan/*** 连接可以通过其他物理位置重定向。 这是一个局域网连接,同一个公司网络。但我没有设置 ***(我正在管理该网络)。 140km 对于accuracy 来说是一个非常高的价值...您是否尝试过在选项中启用enableHighAccuracy? .getCurrentPosition(successCallback, errorCallback, options), PositionOptions 是的,相同的结果(编辑主要添加它) 如果您尝试另一个可以告诉您您所在位置的网站怎么办?我的意思是,同一个网络,其他网站?如html5demos.com/geo 【参考方案1】:

您有连接到 PC 的 GPS 加密狗吗?或者地理定位源是任何错误的 IP-geo 工具或 Wifi/Cell。您无法通过 IP 地址获得确切的物理坐标。如果你使用WiFi网络精度可以5-50米,但是你使用的是局域网。通过 IP 进行地理定位非常不准确,通常会输入错误的城市或国家/地区。

【讨论】:

没有 GPS 加密狗。但我不知道地理位置来源是什么。 如果您可以稍微编辑一下您的答案以包含实际答案,我会将其标记为答案,顺便谢谢您 这太奇怪了,因为在 WIFI 上我得到了很好的结果,在 LAN 上我得到了错误的结果。同一个网络。相同的wifi路由器 Google 拥有非常庞大的数据库,其中包含全球几乎所有 Wifi 路由器的详细信息。当任何人通过打开 GPS 的智能手机连接到任何 WiFi 路由器时,如果您同意,Google 会将当前纬度、经度、路由器的 SSID、MAC 地址、信号级别和密码保存到数据库中。当您尝试通过连接到 WiFi 的 PC 获取地理位置时,Google 会收到包含所有当前可见邻居的 WiFi 路由器及其信号级别的列表,而不仅仅是您的路由器!然后 Google 会计算出您的大致坐标。 在我的浏览器中,它显示的位置非常不正确。我的意思是它是地球的另一部分。我来自印度,参加它展示法国。有趣的是ip位置要准确得多。 IP 位置显示我目前所在的城市,但地理位置显示法国

以上是关于navigator.geolocation 给出错误的结果的主要内容,如果未能解决你的问题,请参考以下文章

如果在同一页面中使用 navigator.geolocation.getCurrentPosition 和 navigator.geolocation.watchPosition 将不起作用

navigator.geolocation.getCurrentPosition():如果用户说“不”,则触发回调?

Cordova geolocation navigator.geolocation.getCurrentPosition 错误的窗口访问位置

navigator.geolocation 和回调的回调

html5-geolocation : navigator.geolocation.watchPosition 连续回调

只为 navigator.geolocation.getCurrentPoistion 阻塞一次