GeoNames地理信息系统
免费版首页
http://www.geonames.org/
收费版首页
http://ws.geonames.net
所有的服务列表
http://www.geonames.org/export/ws-overview.html
参考BLOG
http://www.ibm.com/developerworks/cn/web/wa-realweb7/
修改ivy.xml的头标签,<ivy-module version="2.0" xmlns:m="http://ant.apache.org/ivy/maven">
然后增加对应的webservice的api.jar包。
<dependency org="org/geonames" name="geonames" rev="1.0" m:classifier="java5"/>
测试代码GeonamesTest.java如下:
package com.sillycat.ejb;
import org.geonames.Toponym;
import org.geonames.ToponymSearchCriteria;
import org.geonames.ToponymSearchResult;
import org.geonames.WebService;
public class GeonamesTest {
public static void main(String[] args) {
ToponymSearchCriteria searchCriteria = new ToponymSearchCriteria();
//searchCriteria.setQ("成都");
searchCriteria.setQ("neijiang");
searchCriteria.setLanguage("zh");
ToponymSearchResult searchResult = null;
try {
searchResult = WebService.search(searchCriteria);
} catch (Exception e) {
e.printStackTrace();
}
for (Toponym toponym : searchResult.getToponyms()) {
System.out
.println(toponym.getName() + " " + toponym.getCountryName()
+ " " + toponym.getCountryCode());
}
}
}
打印的结果是:
内江市 中国 CN
内江市 中国 CN
Nei-chiang 台湾 TW
东兴区 中国 CN
呵呵。肯定还有其他的接口和用途。API地址:
http://www.geonames.org/source-code/javadoc/
另外一个示例,和邮政编码相关:
PostalCodeSearchCriteria postcodeSearchCriteria = new PostalCodeSearchCriteria();
postcodeSearchCriteria.setPostalCode("78730");
try {
postcodeSearchCriteria.setCountryCode("US");
} catch (InvalidParameterException e) {
e.printStackTrace();
}
List<PostalCode> list = null;
try {
list = WebService.postalCodeSearch(postcodeSearchCriteria);
} catch (Exception e) {
e.printStackTrace();
}
for (PostalCode item : list) {
System.out.println(item.getPlaceName() + " " + item.getLatitude()
+ " " + item.getLongitude());
}
打印的结果是:
Austin 30.36074 -97.82406
免费版首页
http://www.geonames.org/
收费版首页
http://ws.geonames.net
所有的服务列表
http://www.geonames.org/export/ws-overview.html
参考BLOG
http://www.ibm.com/developerworks/cn/web/wa-realweb7/
修改ivy.xml的头标签,<ivy-module version="2.0" xmlns:m="http://ant.apache.org/ivy/maven">
然后增加对应的webservice的api.jar包。
<dependency org="org/geonames" name="geonames" rev="1.0" m:classifier="java5"/>
测试代码GeonamesTest.java如下:
package com.sillycat.ejb;
import org.geonames.Toponym;
import org.geonames.ToponymSearchCriteria;
import org.geonames.ToponymSearchResult;
import org.geonames.WebService;
public class GeonamesTest {
public static void main(String[] args) {
ToponymSearchCriteria searchCriteria = new ToponymSearchCriteria();
//searchCriteria.setQ("成都");
searchCriteria.setQ("neijiang");
searchCriteria.setLanguage("zh");
ToponymSearchResult searchResult = null;
try {
searchResult = WebService.search(searchCriteria);
} catch (Exception e) {
e.printStackTrace();
}
for (Toponym toponym : searchResult.getToponyms()) {
System.out
.println(toponym.getName() + " " + toponym.getCountryName()
+ " " + toponym.getCountryCode());
}
}
}
打印的结果是:
内江市 中国 CN
内江市 中国 CN
Nei-chiang 台湾 TW
东兴区 中国 CN
呵呵。肯定还有其他的接口和用途。API地址:
http://www.geonames.org/source-code/javadoc/
另外一个示例,和邮政编码相关:
PostalCodeSearchCriteria postcodeSearchCriteria = new PostalCodeSearchCriteria();
postcodeSearchCriteria.setPostalCode("78730");
try {
postcodeSearchCriteria.setCountryCode("US");
} catch (InvalidParameterException e) {
e.printStackTrace();
}
List<PostalCode> list = null;
try {
list = WebService.postalCodeSearch(postcodeSearchCriteria);
} catch (Exception e) {
e.printStackTrace();
}
for (PostalCode item : list) {
System.out.println(item.getPlaceName() + " " + item.getLatitude()
+ " " + item.getLongitude());
}
打印的结果是:
Austin 30.36074 -97.82406
本文介绍了GeoNames地理信息系统的基本使用,包括免费和收费版本的链接,提供了WebService接口的使用示例,展示了如何搜索地名和邮政编码。通过示例代码`GeonamesTest.java`演示了查询'内江市'和美国邮政编码'78730'的过程。
1604

被折叠的 条评论
为什么被折叠?



