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

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

相关推荐
geovindu8 分钟前
CSharp: Bridge Pattern
开发语言·后端·桥接模式·结构型模式
এ慕ོ冬℘゜25 分钟前
深入 JavaScript BOM:掌握 window 对象的窗口控制魔法
开发语言·javascript·ecmascript
2501_9419820526 分钟前
企业微信二次开发:如何用 Python 搭建通用的 Webhook 实时消息接收
开发语言·python·企业微信
cfm_291444 分钟前
Spring监听器
java·spring boot·后端
逝水无殇1 小时前
C# 特性详解
开发语言·后端·c#
SamDeepThinking1 小时前
Java面向对象在JVM里怎么实现
java·后端·面试
灵晔君1 小时前
【C++】二叉搜索树
开发语言·c++
LongtengGensSupreme2 小时前
C#图像内存高速拷贝:使用Marshal.AllocHGlobal与ArrayPool实现内存拷贝的几个方法
开发语言·数码相机·c#
Java面试题总结2 小时前
Python,单引号和双引号有何区别
开发语言·python
鱼子星_2 小时前
【C++】内存管理:内存分布,new/delete的使用及细节处理,new/delete的底层,定位new表达式
开发语言·c++·笔记