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

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

相关推荐
零依赖极客12 分钟前
Day 6·1 ARMv8.2 dotprod——vdotq_s32 一条指令做 4 个点积
c语言·开发语言·人工智能·矩阵·arm·vllm
shehuiyuelaiyuehao1 小时前
1计算机是如何工作的
java·计算机网络
letisgo52 小时前
JAVA 高级进阶07篇《@Transactional失效的8个场景:代理机制到传播行为》
java·面试·transactional·spring事务·aop动态代理
水域安全老周2 小时前
水趣钓鱼救生衣专利拆解:两级锁紧如何解决落水人衣分离
java·前端·网络
新时代牛马2 小时前
cyclictest 毛刺从哪来?从ftrace、latencytop、perf到IRQ/调度延迟定位
android·开发语言·python·kotlin
三8442 小时前
Java 模板注入(FreeMarker) · 02 · 模板引擎与 FreeMarker 语法
java·开发语言·web安全·freemarker
IvanCodes2 小时前
Python 基础语法(七):推导式与常见遍历写法
开发语言·python
暮雨哀尘2 小时前
Java 基础练习(一):创建类并调用对象
java·开发语言
想要入门的程序猿3 小时前
回调函数学习
java·网络·学习
zhangzeyuaaa3 小时前
Python requests:raise_for_status() 与 4xx/5xx 异常层次详解
开发语言·python