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请求

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

相关推荐
用户3521802454757 小时前
当 Prompt 学会"热更新":Spring Boot × Nacos3 AI 实战
java·spring boot·ai编程
东坡白菜10 小时前
破局全栈:一个前端开发的Java入门实战记录(1)
java·全栈
唐青枫10 小时前
Java Tomcat 实战指南:从 Servlet 容器到 Spring Boot 部署
java
wsaaaqqq11 小时前
roudan:自由选择实体、灵活操作数据、快速写入数据库的 Java 框架
java
plainGeekDev14 小时前
null 判断 → Kotlin 可空类型
android·java·kotlin
糖拌西瓜皮14 小时前
Java开发者视角:深入理解Node.js异步编程模型
java·后端·node.js
plainGeekDev14 小时前
getter/setter → Kotlin 属性
android·java·kotlin
一线大码14 小时前
Smart-Doc 的简单使用
java·后端·restful
MacroZheng16 小时前
Claude Code官方桌面端正式发布,夯爆了!
java·人工智能·后端