Java后端利用百度地图全球逆地理编码,获取地址

声明:本人是在实习项目的时候遇到的问题

一.使用Api分为四步骤全球逆地理编码 rgc 反geo检索 | 百度地图API SDK

步骤1,2自行完成 接下来去获取AK

二.申请AK

登录百度账号

点击创建应用,选择自己想用的服务,我只单选了逆地理编码,默认全选也是可以。

ip白名单自行设置,嫌麻烦可以设置为0.0.0.0/0,点击提交后拿到自己的AK

三.编写java代码

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;
        }
    }
}
java 复制代码
    @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请求

文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。

相关推荐
海边的Kurisu3 小时前
苍穹外卖日记 | Day1 苍穹外卖概述、开发环境搭建、接口文档
java
C雨后彩虹6 小时前
任务最优调度
java·数据结构·算法·华为·面试
heartbeat..6 小时前
Spring AOP 全面详解(通俗易懂 + 核心知识点 + 完整案例)
java·数据库·spring·aop
Jing_jing_X6 小时前
AI分析不同阶层思维 二:Spring 的事务在什么情况下会失效?
java·spring·架构·提升·薪资
SmartRadio8 小时前
CH585M+MK8000、DW1000 (UWB)+W25Q16的低功耗室内定位设计
c语言·开发语言·uwb
rfidunion8 小时前
QT5.7.0编译移植
开发语言·qt
rit84324998 小时前
MATLAB对组合巴克码抗干扰仿真的实现方案
开发语言·matlab
元Y亨H8 小时前
Nacos - 服务发现
java·微服务
微露清风9 小时前
系统性学习C++-第十八讲-封装红黑树实现myset与mymap
java·c++·学习
dasi02279 小时前
Java趣闻
java