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

时间:2009-10-16 06:26:29

标签: geolocation

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

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

3 个答案:

答案 0 :(得分:10)

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

我在我的博客thenullreference.com中对此进行了详细介绍,但此处简称


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

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

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

您要查看的对象是 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的详细信息,请查看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和组织名称(如果已知)