【问题标题】:javaScript / API - How to get user's precise location? [duplicate]javaScript / API - 如何获取用户的精确位置? [复制]
【发布时间】:2016-03-29 11:22:42
【问题描述】:

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

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

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

【问题讨论】:

  • 我也知道 HTML5-geolocalization 方法,但它似乎也不精确(我没有得到预期的结果),但它似乎比 ip-address 本地化方法更精确.这两种方法是唯一可用的方法吗? (也许是我使用它们的方式,但我认为不是)。
  • 没有魔法。 openWeatherMap 站点有一个输入框,用于输入您的城市名称。然后它将信息存储在名为“cityid”的 cookie 中。下次您访问他们的网站时,它会自动显示该城市 ID 的信息。
  • @Roberto,有趣的是,我只是通过删除考虑 cookie 来尝试它,你是对的。那么没有比之前列举的更好的方法了吗?

标签: javascript html api localization openweathermap


【解决方案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/

【讨论】:

  • 实际上,我使用将 Javascript 地理定位 API 与 IP 地理定位服务/API 结合起来。我只是尝试寻找是否有更好和最佳的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-18
  • 1970-01-01
相关资源
最近更新 更多