Closed. This question needs to be more focused。它当前不接受答案。
想改善这个问题吗?更新问题,使其仅关注editing this post的一个问题。
在11个月前关闭。
Improve this question
在Java中(尽可能免费)获得地理位置的最佳方法是什么?
更新:不是从GPS设备。基本上是Firefox 3.5/HTML 5的工作方式
从http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz下载地理位置数据文件
将文件解压缩到任何文件夹中。然后做:
结果将在纬度,经度,城市,区域和countryCode属性的Location对象中。
请查看他们的准确性估计,以确保它满足您的项目需求:http://www.maxmind.com/en/geolite_city_accuracy。
想改善这个问题吗?更新问题,使其仅关注editing this post的一个问题。
在11个月前关闭。
Improve this question
在Java中(尽可能免费)获得地理位置的最佳方法是什么?
更新:不是从GPS设备。基本上是Firefox 3.5/HTML 5的工作方式
最佳答案
一个简单的方法是使用GeoLite(http://dev.maxmind.com/geoip/legacy/geolite/)。因为它使用本地数据库,所以不需要Web服务调用,并且对大量IP进行地理编码要快得多。
方法如下:
添加此Maven工件:
<dependency>
<groupId>com.maxmind.geoip</groupId>
<artifactId>geoip-api</artifactId>
<version>1.2.11</version>
</dependency>
从http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz下载地理位置数据文件
将文件解压缩到任何文件夹中。然后做:
LookupService cl = new LookupService("/var/geolite/GeoLiteCity.dat",
LookupService.GEOIP_MEMORY_CACHE | LookupService.GEOIP_CHECK_CACHE);
Location location = cl.getLocation("some ip address");
结果将在纬度,经度,城市,区域和countryCode属性的Location对象中。
请查看他们的准确性估计,以确保它满足您的项目需求:http://www.maxmind.com/en/geolite_city_accuracy。
08-06 14:38