声明:本人是在实习项目的时候遇到的问题
一.使用Api分为四步骤全球逆地理编码 rgc 反geo检索 | 百度地图API SDK
步骤1,2自行完成 接下来去获取AK
二.申请AK
登录百度账号
点击创建应用,选择自己想用的服务,我只单选了逆地理编码,默认全选也是可以。
ip白名单自行设置,嫌麻烦可以设置为0.0.0.0/0,点击提交后拿到自己的AK
三.编写java代码
@Data
@Component
public class BaiduMapsUtils {private static final String API_KEY = "uCrrxBDB4bl76vh9B7F3vYfn3OVujUVd";private static final String REVERSE_GEOCODING_URL = "http://api.map.baidu.com/reverse_geocoding/v3/?ak=" + API_KEY + "&location=%s,%s&output=json";public static JsonNode reverseGeocode(Double latitude, Double longitude) throws Exception {String urlString = String.format(REVERSE_GEOCODING_URL, latitude, longitude);URL url = new URL(urlString);HttpURLConnection connection = (HttpURLConnection) url.openConnection();connection.setRequestMethod("GET");connection.setRequestProperty("Accept", "application/json");if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));String inputLine;StringBuilder response = new StringBuilder();while ((inputLine = in.readLine()) != null) {response.append(inputLine);}in.close();connection.disconnect();ObjectMapper objectMapper = new ObjectMapper();JsonNode jsonNode = objectMapper.readTree(response.toString());return jsonNode;} else {return null;}}
}
@RequestMapping("/api/index/positioning")public R getPositioning(@RequestParam(value = "longitude") Double longitude,@RequestParam(value = "latitude") Double latitude){JsonNode jsonNode = null;try{jsonNode = BaiduMapsUtils.reverseGeocode(longitude, latitude);}catch (Exception e){log.error("百度地图接口异常",e);}return R.data(jsonNode);}
简单编写了一段代码,代码不是唯一的,测试正常。
详细请看百度地图官方文档:全球逆地理编码 rgc 反geo检索 | 百度地图API SDK
如果发现使用你的AK取调用某个API的时候报错:{"status":240,"message":"APP 服务被禁用"},请查看 API服务地址 是否拼接正确,因为原地址编码已经停止维护,使用其他文章可能URL拼接会有问题,最新文档地址是:
https://api.map.baidu.com/reverse_geocoding/v3/?ak=您的ak&output=json&coordtype=wgs84ll&location=31.225696563611,121.49884033194
//GET请求
文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。