您的位置:首页 > 其它

根据经纬度来获取地理位置信息demo

2013-08-23 11:14 615 查看
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();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: