java google map_java如何通过google map api实现地址解析

地址解析就是将地址(如:广东省广州市)转换为地理坐标(如经度:113.26442,纬度:23.129074)的过程。google map api提供两种方法实现地址解析。

第一种,是通过使用 GClientGeocoder 对象来实现,大家可以参考google map api的相关文档,以下是摘自google的相关代码

var map = new GMap2(document.getElementById("map_canvas"));

var geocoder = new GClientGeocoder();

function showAddress(address) {

geocoder.getLatLng(

address,

function(point) {

if (!point) {

alert("无法解析:" + address);

} else {

map.setCenter(point, 13);

var marker = new GMarker(point);

map.addOverlay(marker);

marker.openInfoWindowHtml(address);

}

}

);

}

而通过java实现的方法如下

/**

* 利用googlemap api 通过 HTTP 进行地址解析

* @param address 地址

* @return HTTP状态代码,精确度(请参见精确度常数),纬度,经度

*/

private String getLatlng(String address){

String ret = "";

if(address != null && !address.equals("")){

try {

address = URLEncoder.encode(address,"UTF-8");//进行这一步是为了避免乱码

} catch (UnsupportedEncodingException e1) {

logger.error("转码失败", e1);

}

String[]  arr = new String[4];

arr[0] = address;

arr[1] = OUTPUT;

arr[2] = SENSOR;

arr[3] = KEY;

URL urlmy = null;

try {

urlmy = new URL(url);

HttpURLConnection con = (HttpURLConnection) urlmy.openConnection();

con.setFollowRedirects (true );

con.setInstanceFollowRedirects(false );

con.connect();

BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(),"UTF-8"));

String s = "";

StringBuffer sb = new StringBuffer("");

while ((s = br.readLine()) != null ) {

sb.append(s+"\r\n");

}

ret = ""+sb;

} catch (MalformedURLException e) {

logger.error("通过http方式获取地址信息失败", e);

} catch (IOException e) {

logger.error("文件读取失败", e);

}

}

return ret;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值