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 - 如何获取用户的精确位置? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法重新询问用户获取他的位置的权限,或者使用带有 javascript 的地理定位 API 删除旧设置?
使用 Javascript SDK Graph API 获取用户的新闻提要