我总是最终需要用户在我工作的大多数网络项目上的位置。我使用过Maxmind's GeoIp,但它涉及导入数据集,需要不断更新。还有其他免费和付费服务,但我只想要一些简单的东西,我可以在几秒钟内添加到任何网站。
所以这有点诱饵因为我有一个简单的解决方案,详情如下,但我想知道是否有其他人使用这种技术,是否有更好的解决方案,或者是否有一些无法预料的陷阱。
答案 0 :(得分:10)
我目前使用的实现我在其他几个问题中看到过,但我没有将其视为选定的答案。
我在我的博客thenullreference.com中对此进行了详细介绍,但此处简称
基本上您需要做的就是加载Google的API加载器脚本:
<script type="text/javascript" src="http(s)://www.google.com/jsapi"></script>
然后您可以访问多个属性,为您提供详细的位置信息。
您要查看的对象是 google.loader.ClientLocation
*注意其中一些可以为null
有关此API的详细信息,请查看here
还有其他人使用这个吗?有没有人有他们使用的东西,这是简单和更好的?这种方法有问题吗?
我不知道此解决方案的覆盖范围/准确性,但我认为Google会保持更新,可能还不错。
答案 1 :(得分:8)
我已经使用了wipmania免费的JSONP服务,我不确定它的准确性,但使用起来非常简单:
// an example using jQuery
$.getJSON('http://api.wipmania.com/jsonp?callback=?', function (data) {
alert('Latitude: ' + data.latitude +
'\nLongitude: ' + data.longitude +
'\nCountry: ' + data.address.country);
});
检查正在运行here的代码段。
答案 2 :(得分:2)
我使用MaxMind GeoIP城市/ ISP /组织(Web服务),50,000次查询需要花费20美元,并且始终更新(请参阅http://www.maxmind.com/app/web_services#city)。我喜欢这样一个事实:我不需要担心数据库更新,因为它都是在服务器上完成的。
我正在使用PHP发送客户端IP地址,作为回报,我获得了纬度,经度以及其他有用的信息,例如区域代码,城市,城市代码,区域代码,国家/地区,ISP和组织名称(如果已知)