地理定位查詢的的數據庫比較多,而且大多都開放一些free的版本
國內的有純真數據庫等,但是他只提供文本的地理位置信息,不提供經緯度數據
當應用到google map時,就不可以了
國外的有MaxMind的GeoIP數據庫、IP2Location數據庫等,它們提供經緯度數據
在此簡單介紹下,MaxMind的GeoIP,此數據庫用於國家的查詢
首先,在MaxMind官網下載所需資源
GeoIP數據庫下載地址:http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
下載后,我們將其解壓到e盤
MaxMind提供多種api接口,如:perl, java, python, c, php, c#等
在此我們使用java API
下載地址:http://www.maxmind.com/download/geoip/api/java/
將其導入eclipse等開發環境中即可
也可以將其解壓到任意目錄,手動編譯(
cd source/com/maxmind/geoip/ javac *.java cd - javac *.java
)
在此api中含有例子程序 CountryLookupTest.java
在編譯前需要確定,操作系統環境,進行更改
// Uncomment for windows
System.setProperty("user.dir", "E:\\");
String dir = System.getProperty("user.dir");
// Uncomment for Linux
//String dir = "/usr/local/share/GeoIP";
如上,windows中我放在e盤目錄下(位置隨意),在其中必須加上 System.setProperty("user.dir", "E:\\");
以設的程序搜索路徑,不加的話,就是system32下,好像
設置完后即可執行
java CountryLookupTest
查看結果,此數據庫只能查到國家
如果,想精確查到城市的話,可以用MaxMind網站的
http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz數據庫
附例子執行結果:
IT
Italy
United States
United States
Colombia
China
http://dev.maxmind.com/zh-hans/geoip/legacy/geolite/
http://www.maxmind.com