第一步:百度地图上申请自己的AK
链接:http://lbsyun.baidu.com/apiconsole/key
第二步:上代码
final static String AK = "edGc5mIugVxx7lwUx9YpraKeWmExG64o";//来源网络,可用
/**
* 地理编码 URL
*/
final static String ADDRESS_TO_LONGITUDEA_URL = "http://api.map.baidu.com/geocoding/v3/?output=json&location=showLocation";
/**
* 地理编码
* @param address 布达拉宫
* 详细的位置信息
* @return
*/
public static HashMap AddressTolongitudea(String address) {
if (StringUtils.isBlank(address)) {
return null;
}
String url = ADDRESS_TO_LONGITUDEA_URL + "&ak=" + AK + "&address=" + address;
HttpClient client = HttpClients.createDefault(); // 创建默认http连接
HttpPost post = new HttpPost(url);// 创建一个post请求
try {
HttpResponse response = client.execute(post);// 用http连接去执行get请求并且获得http响应
HttpEntity entity = response.getEntity();// 从response中取到响实体
String html = EntityUtils.toString(entity);// 把响应实体转成文本
System.out.println("百度地图返回信息:" + html);
// 字符串转map
HashMap hashMap = JSON.parseObject(html, HashMap.class);
HashMap resultMap = JSON.parseObject(String.valueOf(hashMap.get("result")), HashMap.class);
HashMap locationMap = JSON.parseObject(String.valueOf(resultMap.get("location")), HashMap.class);
return locationMap;// 返回包含经纬度的map:{"lng":120,"lat":30}
} catch (Exception e) {
System.out.println("地理编码[异常]:"+ e);
return null;
}
}