前置条件
由于我们是使用百度提供的地理API接口,所以事先我们需要创建百度账号,并创建百度应用(因为我们要用应用到的ak)~~~~ 偷偷的告诉你们…这是免费的哦不要钱的…
*通过本章节你将了解到*
先导入一下我们的httpclient
<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.3</version> </dependency> /** * http://lbsyun.baidu.com/apiconsole/key * <百度开发者>用户申请注册的key,自v2开始参数修改为“ak”,之前版本参数为“key” 申请ak */ 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 ReturnLocationBean AddressTolongitudea(String address) { if(StringUtils.isBlank(address)){ return null; } String url = ADDRESS_TO_LONGITUDEA_URL + "&ak=" + AK + "&address="+ address; log.info("请求url:" + url); 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);// 把响应实体转成文本 log.info("返回信息:" + html); // JSON转对象 return JSON.parseObject(html, ReturnLocationBean.class); } catch (Exception e) { log.error("地理编码[异常],", e); return null; }返回信息
返回信息如下
from参数说明 源坐标类型: 1:GPS设备获取的角度坐标,WGS84坐标; 2:GPS获取的米制坐标、sogou地图所用坐标; 3:google地图、soso地图、aliyun地图、mapabc地图和amap地图所用坐标,国测局(GCJ02)坐标; 4:3中列表地图坐标对应的米制坐标; 5:百度地图采用的经纬度坐标; 6:百度地图采用的米制坐标; 7:mapbar地图坐标; 8:51地图坐标 返回信息
{“status”:0,“result”:[{“x”:113.54988989895114,“y”:23.13628309504525}]}
x float 经度 y float 纬度