Google Maps Geolocation API 准确性

Posted

技术标签:

【中文标题】Google Maps Geolocation API 准确性【英文标题】:Google Maps Geolocation API accuracy 【发布时间】:2015-03-10 11:51:56 【问题描述】:

我正在测试 Geolocation API 并得到一些奇怪的结果。 我有(我的)接入点并且知道他们的 Wifi MAC 地址。在服务器上我需要得到他们的位置。我发送了 2 个或更多这样的 MAC 地址,在某些情况下可以得到非常精确的位置。在其他情况下,我会在完全不同的国家/地区获得位置。

我认为在这种情况下,Google 无法通过 Mac 地址确定位置(没有足够的数据或其他),并且可能会根据我的服务器 IP(云托管、不同国家等)返回位置。

有什么方法可以让我知道这个计算是基于 MAC 或 IP 地址的,所以我可以“拒绝”IP 结果??

我目前使用的解决方案是,如果精度小于 500m,我会接受结果(我假设它是基于 MAC 的正确结果),但如果有更可靠的解决方案,我会更喜欢。

感谢您的任何建议、答案等。

【问题讨论】:

如果您没有启用 GPS,您应该能够获得更准确的结果。 【参考方案1】:

根据您使用的浏览器,html5 Geolocation API 会根据您的公共 IP 地址、手机信号塔 ID、GPS 信息、Wifi 接入点列表、信号强度和 MAC ID(Wifi和/或蓝牙)。然后,它通常通过 HTTPS 请求将该信息传递给定位服务,该请求尝试将您的位置与各种数据库相关联,这些数据库包括公共和私人 Wifi 接入点位置,以及蜂窝塔和 IP 地址位置。然后通过 javascript 回调将大致位置返回给您的代码。

您的案例看起来像是在使用 ***。如果打开 ***,则该位置将解析为 *** 的公共 IP 地址。例如,丹佛的用户登录到公司 ***,该公司的主机托管在其位于德克萨斯州达拉斯郊区的总部办公室。 HTML5 Geolocation API 会将位置解析为达拉斯的总部公共 IP 地址,而不是用户的实际位置。出于安全原因,相当多的企业用户拥有 ***。

【讨论】:

以上是关于Google Maps Geolocation API 准确性的主要内容,如果未能解决你的问题,请参考以下文章

使用 Geolocation 和 Google Maps API [帮助]

Google Maps Geolocation API 的替代方案

Google Geolocation API 和 Google Maps Android SDK

Google Maps Geolocation API 准确性

用于 wifiAccessPoints 的 Google Maps Geolocation API 返回未找到的地理位置

是否可以在 Android 电视上使用 Google Maps Geolocation API?