从ip地址获取用户纬度和经度的最简单方法是什么

Gre*_*rts 13 geolocation

我总是最终需要用户在我工作的大多数Web项目上的位置.我使用过Maxmind的GeoIp,但它涉及到导入数据集,需要不断更新.还有其他免费和付费服务,但我只想要一些简单的东西,我可以在几秒钟内添加到任何网站.

所以这有点诱饵,因为我有一个简单的解决方案,详情如下,但我想看看是否有其他人使用这种技术,是否有更好的解决方案或是否有一些无法预料的陷阱.

Gre*_*rts 10

我目前使用的实现我已经在其他几个问题中看到了,但我没有将其视为选定的答案.

我在我的博客thenullreference.com上详细说明了这一点,但这里简而言之:


基本上你需要做的就是加载Google的API加载器脚本:

<script type="text/javascript" src="http(s)://www.google.com/jsapi"></script>
Run Code Online (Sandbox Code Playgroud)

然后,您可以访问多个属性,为您提供详细的位置信息.

您要查看的对象是google.loader.ClientLocation

  • ClientLocation.latitude
  • ClientLocation.longitude
  • ClientLocation.address.city
  • ClientLocation.address.country
  • ClientLocation.address.country_code - ISO 3166-1国家/地区代码
  • ClientLocation.address.region - 美国的国家特定区域,这是州

*注意其中一些可以为null

有关此API的更多信息,请查看此处

还有其他人使用这个吗?有没有人有他们使用的东西,这是简单和更好的?这种方法有问题吗?

我不知道这个解决方案的覆盖/准确性,但我认为谷歌会保持更新,可能还不错.


CMS*_*CMS 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); 
});
Run Code Online (Sandbox Code Playgroud)

检查此处运行的代码段.