高德地图API的核心使用

高德 Web 服务 API 向开发者提供 HTTP 接口 ,开发者可通过这些接口使用各类型的地理数据服务 ,返回结果支持 JSON 和 XML 格式。

-- 需要用到哪个API就去文档上找url,主要就是给这个url发起请求然后解析数据获取数据 高德地图APIhttps://amap.apifox.cn/doc-537179如果还没注册,就先看文档跟着步骤,非常详细有手就行

-- 在基础API文档里就是我们一般用的多的API

-- 按着他的这个调试,先自己改改参数,玩一玩(介绍的非常详细)

然后我们整合API自己使用的时候

就是向这个url发送请求获取响应的过程

也就是这个所以我们就按这个url拼接发送请求就行了

可以发现每个API前面https://restapi.amap.com/v3/geocode/geo?·都是固定的,我们需要按格式处理后面的拼接参数

一个裸奔版供测试

裸奔版

java 复制代码
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.25</version>
</dependency>

地址转经纬度+获取响应


java 复制代码
import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import java.util.HashMap;
import java.util.Map;
​
public class AmapResponseDemo {
    public static void main(String[] args) {
        // 1. 准备请求要素(核心:URL + 参数)
        String apiUrl = "https://restapi.amap.com/v3/geocode/geo"; // 地理编码 API URL
        String amapKey = "你的高德API密钥"; // 替换为自己的 key
​
        // 请求参数(必传:key + address,可选:city)
        Map<String, Object> paramMap = new HashMap<>();
        paramMap.put("key", amapKey);          // 高德密钥(必传)
        paramMap.put("address", "北京市朝阳区天安门"); // 待转换地址(必传)
        paramMap.put("city", "北京");           // 限定城市(可选,提高精度)
        paramMap.put("output", "json");        // 返回格式(必传,JSON)
​
        // 2. 发送 GET 请求 + 获取响应体(核心步骤)
        String responseBody = HttpRequest.get(apiUrl) // 指定 URL 和请求方式(GET)
                .form(paramMap) // 传入参数(Hutool 自动拼接为 key=value&...,自动编码中文)
                .timeout(5000) // 连接超时(5秒)
                .readTimeout(5000) // 读取超时(5秒)
                .execute() // 执行请求(真正发起网络调用)
                .body(); // 获取响应体(API 返回的 JSON 字符串)
​
        // 3. 解析响应数据(从 JSON 中提取需要的信息)
        JSONObject responseJson = JSONUtil.parseObj(responseBody); // 字符串转 JSON 对象
​
        // 3.1 先校验响应是否成功(高德 API 规则:status=1 表示成功)
        if ("1".equals(responseJson.getStr("status"))) {
            // 3.2 提取核心数据(如经纬度)
            String location = responseJson.getJSONArray("geocodes") // 结果数组
                    .getJSONObject(0) // 取第一个匹配结果(最精准)
                    .getStr("location"); // 经纬度字符串(格式:"经度,纬度")
​
            // 3.3 打印结果
            System.out.println("API 响应体(JSON 字符串):" + responseBody);
            System.out.println("解析后的经纬度:" + location);
        } else {
            // 3.4 响应失败:打印错误信息(高德 API 的 info 字段是错误描述)
            String errorMsg = responseJson.getStr("info");
            String errorCode = responseJson.getStr("infocode");
            System.out.println("请求失败:错误信息=" + errorMsg + ",错误码=" + errorCode);
        }
    }
}
  • 核心代码就这个
java 复制代码
String responseBody = HttpRequest.get(apiUrl)
        .form(paramMap)
        .timeout(5000)
        .readTimeout(5000)
        .execute()
        .body();

向url发送GET请求(高德地图一般都是GET)

.form(拼接参数)

.execute():触发请求发送(建立和高德服务器的连接,发送数据)

然后.body()获取响应体(返回的是JSON格式)

最后用JSONUtil.parseOBJ(responseBody)解析JSON,按高德API字段名提取数据

提取k-v的值,需要去文档里查看这个字段名:

比如:像这样

bi

相关推荐
悟空码字3 天前
SpringBoot深度整合高德地图,构建高性能位置服务
java·springboot·高德地图·编程技术·后端开发
GIS遥遥8 天前
高德云图WebGIS技术面面试题+答案
高德地图·gis开发·webgis开发·地图可视化
我只会写Bug啊9 天前
复制可用!纯前端基于 Geolocation API 实现经纬度获取与地图可视化
前端·高德地图·地图·百度地图·经纬度
此颜差矣。16 天前
高德地图实现实时轨迹展示
高德地图·实时轨迹
杨超越luckly2 个月前
Python应用指南:利用高德地图采集AOI数据
python·arcgis·高德地图·数据可视化·aoi数据
患得患失9494 个月前
【前端】【高德地图WebJs】【知识体系搭建】面要素知识点——>多边形,圆形, 矩形,图形编辑器
前端·编辑器·高德地图·amap
凯子坚持 c5 个月前
当Python遇见高德:基于PyQt与JS API构建桌面三维地形图应用实战
javascript·python·pyqt·高德地图
充气大锤5 个月前
基于高德地图实现后端传来两点坐标计算两点距离并显示
前端·javascript·html·gis·高德地图
初恋叫萱萱5 个月前
重构导航之核:高德地图的深度学习架构解析 导论:从数字化世界到可计算世界
深度学习·重构·架构·高德地图