Geolocation 什么';这是获取用户的最简单方法';从ip地址中选择经度和纬度
在我从事的大多数web项目中,我总是需要用户的位置。我用过,但它涉及到导入他们的数据集,需要不断更新。还有其他免费和付费的服务,但我只是想要一些简单的东西,我可以在几秒钟内添加到任何网站Geolocation 什么';这是获取用户的最简单方法';从ip地址中选择经度和纬度,geolocation,Geolocation,在我从事的大多数web项目中,我总是需要用户的位置。我用过,但它涉及到导入他们的数据集,需要不断更新。还有其他免费和付费的服务,但我只是想要一些简单的东西,我可以在几秒钟内添加到任何网站 这是一种诱饵,因为我有一个简单的解决方案,如下所述,但我想看看是否有其他人使用这种技术,是否有更好的解决方案,或者是否存在一些不可预见的陷阱。我目前使用的实现我在几个其他问题中看到过,但我没有将其视为选择的答案 我在我的博客中详细介绍了这一点,但简而言之: 基本上,您只需加载Google的API加载程序脚本:
这是一种诱饵,因为我有一个简单的解决方案,如下所述,但我想看看是否有其他人使用这种技术,是否有更好的解决方案,或者是否存在一些不可预见的陷阱。我目前使用的实现我在几个其他问题中看到过,但我没有将其视为选择的答案 我在我的博客中详细介绍了这一点,但简而言之:
基本上,您只需加载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_代码-ISO 3166-1国家代码
- ClientLocation.address.region-美国的特定国家/地区此为州
// an example using jQuery
$.getJSON('http://api.wipmania.com/jsonp?callback=?', function (data) {
alert('Latitude: ' + data.latitude +
'\nLongitude: ' + data.longitude +
'\nCountry: ' + data.address.country);
});
查看正在运行的代码段。我使用MaxMind GeoIP City/ISP/组织(Web服务),50000次查询需要花费20美元,并且总是更新(请参阅)。我喜欢这样一个事实:我不需要担心数据库更新,因为它都是在那个服务器上完成的
我使用PHP发送客户端IP地址,作为回报,我得到纬度、经度以及其他有用的信息,如地区代码、城市、大都市代码、区号、国家、ISP和组织名称(如果已知)。Wow,这…有点令人毛骨悚然。有没有办法在服务器端而不是客户端捕获这些数据?我还没有看到谷歌提供的任何关于准确性的数据,但我认为有很多因素会影响你获得的信息的质量。一般来说,ip-to-location数据的准确度很低(任何比city更细粒度的东西),有些不可靠,但通常这就是我所关心的。Matt,我想这取决于你想做什么。显然,如果你在客户端有这个,你可以把它发送到你的服务器上,但如果你真的想从服务器端的代码打电话,这可能会很棘手,因为谷歌只是使用http get请求的ip作为输入。准确度在很多时候甚至不在城市级别。乡村可能是你能得到的最好的地方。IP->Location在注册IP地址的位置工作。例如,我在家的IP注册到我的IP,地址在利兹。我在400英里外。AOL的IP地址来自AOL总部,但在美国各地都有使用(尽管在某些情况下,IP地址会被划分为州)。它永远不会非常准确。还有一个问题:我只选择了这一个而不是wipmania,因为我认为谷歌更稳定/可靠,我的prod应用程序依赖它。看起来这两种方法大体上是一样的。当你得到经度和纬度时,你会自动知道这个国家现在已经不推荐了