通过经纬度获取地理位置
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);
}
}