首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

经过经纬度获取地理位置

2012-08-28 
通过经纬度获取地理位置import java.io.BufferedReaderimport java.io.IOExceptionimport java.io.Input

通过经纬度获取地理位置
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.xml.sax.InputSource;

public class LonLatPosition {//通过经纬度获取地点名称

public static String position(String lonlat) throws Exception {

DefaultHttpClient httpclient = new DefaultHttpClient();      
String url = "http://211.157.109.181:8080/mapProxy/pos.do?"+"latlon="+lonlat;
HttpGet httpget = new HttpGet(url);
HttpResponse resp = httpclient.execute(httpget);
HttpEntity entity = resp.getEntity();
StringBuffer buffer = new StringBuffer();
if (entity != null) {
BufferedReader reader = new BufferedReader(new InputStreamReader(
entity.getContent(),"UTF-8"));
String line = null;
while ((line = reader.readLine()) != null) {
buffer.append(line);
}
entity.consumeContent();
}
String str = buffer.toString();
return parseXmlStr(str);
}

public static String parseXmlStr(String xmlStr) throws JDOMException, IOException{
StringReader reader = new StringReader(xmlStr);
InputSource source = new InputSource(reader);
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(source);
Element root = doc.getRootElement();
List<Element> nodes = root.getChildren();
Element element = null;
String result = "";
for (int i = 0; i < nodes.size(); i++) {
element = nodes.get(i);
if (element.getName().equals("province")){
if (!element.getText().equals("直辖市")){
  result += element.getText();
}
}

if (element.getName().equals("city")){
result += element.getText();
}

if (element.getName().equals("dist")){
result += element.getText();
}

//if (element.getName().equals("area")){
//result += element.getText();
//}
if (element.getName().equals("poi")){
result += element.getText();
}

if (element.getName().equals("direction")){
result += element.getText();
}

if (element.getName().equals("distance")){
result += element.getText();
}

if (element.getName().equals("road")){
List<Element> childNodes = element.getChildren();
for (int j = 0; j < 3; j++) {
Element roadEl = (Element) childNodes.get(j);
result += roadEl.getText();
}
}
}
return result;
}

public static void main(String[] args) throws Exception{
String postion = position("111.5882330,36.7988170");
System.out.println("postion:"+postion);
}

}

热点排行