多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
在使用百度地图进行微信考勤时,遇到很多问题,尤其是定位问题,我知道定位有偏差,但使用百度地图,几十次后,偶尔一次会错的离谱,例如直接就定位到了外省,例如我一直在西安,一次定位到了天津,一次定位到了石家庄,我不知道为什么会这样。偏差几千米还能理解,可偏差几百公里就是在让人不能理解了。是因为我用的百度API是免费的吗?当然出现的次数不多,一般情况下,四五十次,会偶尔出现一两次这么离谱的偏差。 实在找不到原因,也不能是缓存,因为我没有去过石家庄,天津。没办法,但这个问题,又不能不解决,于是只能把四种计算经纬度的方法都列出来,高德地图的经纬度,HTML5的经纬度,经过百度转化的经纬度,百度地图的经纬度,都列出来,看看到底那一块出错了。 ![](https://box.kancloud.cn/2016-01-14_569757deaa71d.jpg) 发现高德的经纬度和HTML5的经纬度基本相同,HTML5的经纬度经过转化的经纬度和百度地图的经纬度基本相同。 这四个经纬度的具体差异参考[百度地图,高德地图,HTML5经纬度比较](http://blog.csdn.net/xuexiaodong009/article/details/49246459) 经过实际测试,百度地图获取的周边信息比高德地图获取的周边信息要准不少,高德地图获取的周边信息经常偏差四五公里,但百度地图就会好很多,基本上在一公里以内。 因此我还是决定使用百度地图,但百度地图偶尔错的离谱如何修正呢? 百度地图一次错的离谱的定位: ![](https://box.kancloud.cn/2016-01-14_569757debdffa.jpg) 既然决定使用百度地图定位,那么这个错误就不能不修正,但如何修正呢?使用高德地图,高德地图虽然没有这么离谱的事,但我测试,误差经常是四五公里,实在是太大了。 那有没有更好的方法呢? 最终我发现,在百度地图没有问题时,获取的省市区和高德地图的省市区是一致的,在百度地图出现异常时,省市区是不一致的,因此我采用了,以百度地图为主,高德地图为辅的方式,修正了百度地图的偶尔出现的错误,在发现错误时,让员工刷新重新获取地理信息,来修正百度地图的这个偶尔出现的错误。其实也可以采用比较HTML5的经纬度和百度地图经纬度比较的方式进行修正,但我目前没有采用。 参考文章 [关于地图坐标和定位偏差](http://www.cnblogs.com/mengdd/p/3463919.html) [中国地图偏移问题](http://blog.csdn.net/caz28/article/details/8143609)