使用百度经纬度获取地址遇到的坑

本文详细介绍了如何使用百度地图API进行地理编码逆查,包括正确的HTTP请求格式、mcode的生成方式及注意事项,同时分享了解析返回JSON数据的具体方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先是 http访问地址 百度官网上给的不全  网上很多人都在写发现他们缺少了mcode 这个字段 所以正确的 HTTP应该是

http://api.map.baidu.com/geocoder/v2/?ak=你的AK&mcode=你的mcode&callback=renderReverse&location=纬度,经度&output=json&pois=0

pois等于0时候是不获取周边数据。
下面说一下mcode:就是你的 SHA1值+;+你的包名
 例:8D:48:FE:B1:1D:1B:9B:37:96:59:19:B1:E9:C9;com.example 
 然后我看到这样的地址以后首先想到的是用占位符啊,提取方法啊。这么多字段当然要用占位符了 不要急马上坑来了。
 发现占位符 转换后的 : 变成了 %3 (对方给你扔给了你一个%3,表示不认识你)
 所以老老实实的拼接吧。
  然后开始解析 发现 我去 解析不出来,请求一下地址看了一下数据 json最外层是 包裹的是什么鬼renderReverse&&renderReverse()
然后老老实实写了一个正则 获取一个括号里面的JSON
 
Pattern pattern = Pattern.compile("(?<=\\()(.+?)(?=\\))");
Matcher matcher= pattern.matcher(s);
while(matcher.find()){
    jsonObject  = new JSONObject( matcher.group());
}
终于正常了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值