这两天在做一个项目,用到了百度地图API,根据坐标获取具体位置,总结一下遇到的几个坑
本文基于最新的V3接口,网上好多要么是V2,要么根据地址获取坐标,本文是唯一一个最新的3,根据坐标获取位置的完整说明。保证可用。
坑一:官方demo错误,md5计算结果不正确
比如sn计算值MD5为
MD5: 2D-3E-DF-8D-21-07-4E-70-74-33-5A-23-F5-3D-59-76
看到第六个字节07了吗,官方输出为 2d3edf8d2174e7074335a23f53d5976
那个7应该是07,正确的应该是 2d3edf8d21074e7074335a23f53d5976
坑二:坐标中的,要进行转义处理,其他的不能转义处理
错误的请求方式
http://api.map.baidu.com/reverse_geocoding/v3?location=34.82105,113.655565&coordtype=wgs84ll&output=xml
正确的请求方式:
http://api.map.baidu.com/reverse_geocoding/v3?location=34.82105%2C113.655565&coordtype=wgs84ll&output=xml
这一块内容花费了我好长时间才解决。
同时也让我证实了,百度的校验机制是先校验SN,然后再校验参数是否正确。
如果把坐标中的,去掉,在sn正确的情况下会提示坐标参数不正确。
所以如果坐标没有逗号,还是报sn错误,那就真的是sn错误。
坑二可能有些人会说官方哪里哪里写的很清楚啊,等等,我只能说还是不够人性化,不能做到开箱即用,体验非常不好,差一点我就转用高德了。