未经许可的地理定位[重复]
Posted
技术标签:
【中文标题】未经许可的地理定位[重复]【英文标题】:geolocation without requesting permission [duplicate] 【发布时间】:2013-02-07 16:44:23 【问题描述】:我注意到现代基于 html5 的地理位置总是询问用户“你想与这个网站分享你的位置吗?”。这很好,但我知道还有其他方法可以尝试确定球场地理位置而无需请求此许可。如果我记得,这些服务使用 ip 数据库来尝试跟踪地理定位信息并将其提供给网络应用程序。
因此,在我的网站中,我希望在不请求地理定位许可的情况下对用户的邮政编码进行“最佳猜测”。最简单和/或最好的方法是什么?
【问题讨论】:
您的意思类似于http://www.iplocation.net/。位置可能非常粗糙,我的台式机在 100 公里外,移动设备在 1,000 多公里外。 YMMV。 【参考方案1】:IP 地理位置不太准确,但您不需要用户许可。 http://ipinfo.io API(这是我的服务)使它变得非常简单。这是一个 jQuery 示例:
$.get("http://ipinfo.io", function(response)
console.log(response.city, response.region, response.country);
, "jsonp");
更多详情请见here。
【讨论】:
您也可以使用:<script src="http://www.l2.io/ip.js?var=ipaddr"></script>
,然后变量 ipaddr
将是您的 IPv4 地址。【参考方案2】:
使用_SERVER
变量在后端使用 IP 定位脚本。这是未经许可的唯一方法,但有很大的缺点:
1)根本不准确
2) 如果使用代理,用户可以更改 IP 地址
但是,如果您不想请求许可,这是唯一的方法。
或者您可以只询问用户他们的邮政编码,因为他们想使用您的网站,他们也可以:)
另外,看看这个帖子:Geolocation without Prompt
【讨论】:
【参考方案3】:使用https://ipdata.co API
$.get("https://api.ipdata.co", function (response)
$("#response").html(JSON.stringify(response, null, 4));
, "jsonp");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<pre id="response"></pre>
【讨论】:
以上是关于未经许可的地理定位[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有警报消息(iOS)的情况下在 webview 中获得地理定位许可?