javaScript / API - 如何获得用户的精确位置?

时间:2016-03-29 11:22:42

标签: javascript html5 api localization openweathermap

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

按照相同的顺序,HTML5-geolocalization API (需要用户自动化)似乎是一种很好的方式,考虑到它可以更精确(有时精度为100米)< / em>的。但是,该精度取决于考虑API函数的参数设置和浏览器配置;来自html5doctor.com的这篇文章给出了一些相关的内容。我的问题是,我也没有得到预期的结果;考虑到前面的例子,我得到 Douala (ISP位置)而不是 Dschang

那么如何使用这些方法获得更好的精确结果,还是有另一种方法来获得用户的精确位置?

1 个答案:

答案 0 :(得分: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/