需求
因老项目使用高德地图java api获取经纬度值,近期高德做了限制,只能免费查询300W条数据,但我们服务器每天访问次数平均在9000W左右,只能找其他方法。刚开始使用的是html模拟页面点击,参考链接: Java调用JS示例-高德地图逆向地理编码 中的HtmlUnit模拟页面点击操作;因为是操作html页面,高并发请求下会出现线程安全问题,所以直接调用高德http接口。
申请key
1、搜索高德地图api

2、登录点击控制台

3、新建应用

4、添加key

5、下图key即为申请好的key

6、高德获取逆地理编码的url为:
单个查询:
http://restapi.amap.com/v3/geocode/regeo?key={
{你申请的key}}&s=rsv3&language=zh_cn&location=116.39,39.9&platform=JS
批量查询:
http://restapi.amap.com/v3/geocode/regeo?key={
{你申请的key}}&s=rsv3&language=zh_cn&batch=true&location=121.4826,31.24609|121.439342,31.278372|121.278667,31.240806|121.636409,31.261352|121.381663,31.229064&platform=JS
具体参数查看官网: 坐标与地址-参考手册.
pom文件引入
<!-- https://mvnrepository.com/artifact/commons-httpclient/commons-httpclient -->
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.0</version>
</dependency>
Java请求URL获取地址
"{ {你自己申请的key}}" 记得修改
/**
* 访问高德官网http
* @param longitude 经度
* @param latitude 纬度
* http://restapi.amap.com/v3/geocode/regeo?key=XXX&s=rsv3&language=zh_cn&location=116.39,39.9&extensions=all&callback=&platform=JS
* @return
*/
public static Address getAddressByHttp(double longitude, double latitude) throws IOException {
Address address = new Address();
address.setLon(longitude);
address.setLat</

本文介绍了在高德地图API限制情况下,如何通过Java直接调用HTTP接口实现逆地理编码。详细步骤包括申请API key,解析高德提供的URL,并在Java项目中设置pom文件以请求地址。
最低0.47元/天 解锁文章
450

被折叠的 条评论
为什么被折叠?



