-1

我已经使用ipinfo (不需要用户的授权)或等效的来获取用户的位置信息,用于从openWeatherMap获取天气信息。问题是使用 ip-address 进行本地化可能不精确,因为它取决于用户互联网接入点(ISP,...)。例如,将喀麦隆视为国家,如果我的互联网连接由位于雅温得的服务器提供,而我位于Dschang;常见的 ip 本地化 API,如ipinfo之一,将给我雅温得作为我的城市位置。也就是说,如果服务器位于不同的国家,我们将得到相同的结果。

同样,HTML5-geolocalization API (需要用户的自动化)似乎是一个很好的方法,考虑到它可以更精确(有时精度为 100m)。但是,该精度取决于考虑 API 函数的参数设置和浏览器配置;html5doctor.com上的这篇文章对此进行了一些说明。我的问题是,我也没有得到预期的结果;考虑前面的例子,我得到Douala (ISP location) 而不是Dschang作为结果。

那么如何使用这些方法获得更好的精确结果,或者是否有其他方法可以获取用户的精确位置?

4

1 回答 1

1

将地址用于地理定位目的不是很准确。原因是 IP 地理定位服务基于数据收集,这意味着您的 ip 已注册到注册位置的数据库中。通常该位置是 ISP 位置,而不是您的真实位置。

有一些 ip 地理定位服务(其中许多是商业服务)可以提供非常准确的位置。其中一些服务可以达到很好的准确性,因为它们向广告提供商支付 GPS 位置信息费用。例如,当您使用已激活定位服务(启用 GPS)的移动手机并访问任何带有广告的网站时,广告可以获取您的 GPS 位置并将其发送到 IP 地理定位服务,该服务将向广告提供商支付收集费用服务。当 IP 地理定位服务检测到许多坐标非常接近的用户连接到具有相同 IP 的网络时,他们可以推断出 IP 真实位置,但这也不完美,因为这些用户可以连接到动态 IP,或者没有 GPS 信号(室内)。

我的建议是尝试将 Javascript Geolocation API 与 IP 地理定位服务结合起来。

您可以在以下网址找到有关如何使用 Geolocation API 的一些信息:http: //html5doctor.com/finding-your-position-with-geolocation/

于 2016-03-29T11:43:34.523 回答