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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值