javaScript / API - 如何获取用户的精确位置? [复制]

Posted

技术标签:

【中文标题】javaScript / API - 如何获取用户的精确位置? [复制]【英文标题】:javaScript / API - How to get user's precise location? [duplicate] 【发布时间】: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

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

【问题讨论】:

这里已经回答了http://***.com/questions/2577305/how-to-get-gps-location-from-the-web-browser 我也知道 HTML5-geolocalization 方法,但它似乎也不精确(我没有得到预期的结果),但它似乎比 ip-address 本地化方法更精确.这两种方法是唯一可用的方法吗? (也许是我使用它们的方式,但我认为不是)。 没有魔法。 openWeatherMap 站点有一个输入框,用于输入您的城市名称。然后它将信息存储在名为“cityid”的 cookie 中。下次您访问他们的网站时,它会自动显示该城市 ID 的信息。 @Roberto,有趣的是,我只是通过删除考虑 cookie 来尝试它,你是对的。那么没有比之前列举的更好的方法了吗? 【参考方案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 结合起来。我只是尝试寻找是否有更好和最佳的方法。

以上是关于javaScript / API - 如何获取用户的精确位置? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PayPal 订阅 API 中获取用户的订阅状态

有没有办法重新询问用户获取他的位置的权限,或者使用带有 javascript 的地理定位 API 删除旧设置?

如何从 GitHub Api 获取用户的编程语言?

使用 Javascript SDK Graph API 获取用户的新闻提要

无法从 facebook javascript login api 获取用户 ID

如何在前端的 Javascript Ajax API 调用中隐藏我的 JWT 令牌?