前言:
自己申请一个百度地图得账号,然后创建自己需要服务拿到Ak
下载地址:登录百度帐号 /apiconsole/key
1.第一步:申请账号,这一步大家都会就不做太多介绍了
2.第二步:创建ak,
3.第三步:创建ak,拿到ak并保存下来,别让其他人用了
4.干货来了!!!!导入http得依赖,通过地址拿到经纬度
/*** @Description: <百度开发者>在百度地图开发文档申请的key,目前是我私人的* @Author: xy丶*/// @Value("${baidu.ak}")//private String ak;final static String AK = "edGc5mIugVxx7********o"; 这里是刚创建得自己得AK/*** @Description: 地理位置编码* @Author: xy丶*///@Value("${baidu.url}")//private String url;final static String ADDRESS_TO_LONGITUDEA_URL = "http://api. /geocoding/v3/?output=json&location=showLocation";/*** @Description: 地理位置编码* @Author: xy丶* @retur: 返回地理位置信息*/@GetMapping("addressApi")public ApiResultVO AddressTolongitudea(String address) {if(Strings.isBlank(address)){log.info("请输入地址");return null;}String httpUrl = ADDRESS_TO_LONGITUDEA_URL + "&ak=" + AK + "&address="+ address;log.info("请求url:" + httpUrl);// 创建默认http连接HttpClient client = HttpClients.createDefault();// 创建一个post请求HttpPost post = new HttpPost(httpUrl);try {// 用http连接去执行get请求并且获得http响应HttpResponse response = client.execute(post);// 从response中取到响实体HttpEntity entity = response.getEntity();log.info("响应实体:"+entity);// 把响应实体转成文本String html = EntityUtils.toString(entity);log.info("返回信息:" + html);// JSON转对象return JSON.parseObject(html, ApiResultVO.class);} catch (Exception e) {log.error("地理编码[异常],", e);return null;}}
返回结果:
{
"status":"0",
"result":{
"level":"村庄",
"confidence":"50",
"location":{
"lng":"105.0006026218481",
"lat":"29.645771323452065"
},
"precise":"0",
"comprehension":"57"
}
}
5.通过经纬度,拿到具体得地址
/*** 逆地理编码 URL*///@Value("${baidu.rurl}")private String rurl;final static String LONGITUDE_TO_ADDRESS_URL = "http://api./reverse_geocoding/v3/?output=json&coordtype=BD09&pois=1";/*** 逆地理编码* @param lat* 纬度 23.1067,* @param lng* 经度 113.325* @return*/@GetMapping("/reverseGeography")public ReverseGeography longitudeToAddress(float lat, float lng) {//拼接请求路径String url = LONGITUDE_TO_ADDRESS_URL + "&ak=" + ak + "&location=" + lat + "," + lng;log.info("请求url:" + url);// 创建默认http连接HttpClient client = HttpClients.createDefault();// 创建一个post请求HttpPost post = new HttpPost(url);try {// 用http连接去执行get请求并且获得http响应HttpResponse response = client.execute(post);// 从response中取到响实体HttpEntity entity = response.getEntity();// 把响应实体转成文本String html = EntityUtils.toString(entity);log.info("返回信息:" + html);// JSON转对象return JSON.parseObject(html, ReverseGeography.class);} catch (Exception e) {log.error("逆地理编码[异常],", e);return null;}}
返回结果
返回结果: