package com.map;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
public class Address {
/***
* 根据经伟度得到详细的地址信息
* @param x
* @param y
* @throws IOException
* @throws UnsupportedEncodingException
*/
public String getaddressforxybyGooglehttpconnection(String x,String y) throws IOException {
if(x.length() >9){x = x.substring(0,7);}
if(y.length()>8){y = y.substring(0,6);}
URL url = null;
String mapurl="http://maps.google.cn/maps/geo?output=csv&key=abcdef&q=" +Float.parseFloat(y)/100000+ "," + Float.parseFloat(x)/100000 ;
String address="无法从地理信息服务器上获得此位置的地理信息";//取地图的地址
StringBuffer strBuffer = new StringBuffer();
HttpURLConnection connection = null;
DataInputStream in = null;
try {
url = new URL(mapurl);
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setUseCaches(false);
connection.setDefaultUseCaches(false);
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setConnectTimeout(1000);
connection.setReadTimeout(1000);
in = new DataInputStream(connection.getInputStream());
int all= in.available();
int code = connection.getResponseCode();
if(code != connection.HTTP_OK) {
return address ;
} else {
byte[] b= new byte[all];
in.read(b);
String strAddress= new String(b,"UTF-8"); //GBK 2011-04-28
String[] m_sAddress = strAddress.split(",");
if (m_sAddress.length == 3) {
address = m_sAddress[2];
} else {
address = "无法获取地址";
}
//address = new String(b,"UTF-8"); //GBK 2011-04-28
}
connection.disconnect();
in.close();
} catch (Exception e) {
address="无法从地理信息服务器上获得此位置的地理信息";//取地图的地址
} finally {
connection.disconnect();
in.close();
}
address = address.replace('"', ' ');
address = address.replace("<?xml version= 1.0 encoding= GBK ?><R><code>0</code><msg>", "");
address = address.replace("</msg></R>", "");
return address;
}
public static void main(String[] args) {
Address address = new Address();
try {
String result = address.getaddressforxybyGooglehttpconnection("30", "120");
System.out.println(result);
} catch (IOException e) {
e.printStackTrace();
}
}
}
转载于:https://my.oschina.net/tmallMoney/blog/127242