百度地图坐标拾取java_java调用百度地图获取经纬度坐标

该博客介绍了一个Java方法,用于通过百度地图的Geocoder API编码地址并获取对应的经纬度坐标。方法中首先对地址进行URLEncoder编码,然后构造请求URL,通过打开连接并读取响应来解析JSON数据,从中提取出`lat`和`lng`坐标,并将它们存储到一个HashMap中返回。
摘要由CSDN通过智能技术生成

public Map getLatAndLngByAddress(String addr){

String address = "";

String lat = "";

String lng = "";

try {

address = java.net.URLEncoder.encode(addr,"UTF-8");

} catch (UnsupportedEncodingException e1) {

e1.printStackTrace();

}

String url = String.format("http://api.map.baidu.com/geocoder/v2/?"

+"ak=4rcKAZKG9OIl0wDkICSLx8BA&output=json&address=%s",address);

URL myURL = null;

URLConnection httpsConn = null;

//进行转码

try {

myURL = new URL(url);

}

catch (MalformedURLException e) {

}

try {

httpsConn = (URLConnection) myURL.openConnection();

if (httpsConn != null) {

InputStreamReader insr = new InputStreamReader(

httpsConn.getInputStream(), "UTF-8");

BufferedReader br = new BufferedReader(insr);

String data = null;

if ((data = br.readLine()) != null) {

lat = data.substring(data.indexOf("\"lat\":")

+ ("\"lat\":").length(), data.indexOf("},\"precise\""));

lng = data.substring(data.indexOf("\"lng\":")

+ ("\"lng\":").length(), data.indexOf(",\"lat\""));

}

insr.close();

}

} catch (IOException e) {

}

Map map = new HashMap();

map.put("lat", new BigDecimal(lat));

map.put("lng", new BigDecimal(lng));

return map;

}

//参考博客:http://blog.csdn.net/u013142781/article/details/47085369

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值