在使用百度地圖進行微信考勤時,遇到很多問題,尤其是定位問題,我知道定位有偏差,但使用百度地圖,幾十次后,偶爾一次會錯的離譜,例如直接就定位到了外省,例如我一直在西安,一次定位到了天津,一次定位到了石家莊,我不知道為什么會這樣。偏差幾千米還能理解,可偏差幾百公里就是在讓人不能理解了。是因為我用的百度API是免費的嗎?當然出現的次數不多,一般情況下,四五十次,會偶爾出現一兩次這么離譜的偏差。
實在找不到原因,也不能是緩存,因為我沒有去過石家莊,天津。沒辦法,但這個問題,又不能不解決,于是只能把四種計算經緯度的方法都列出來,高德地圖的經緯度,HTML5的經緯度,經過百度轉化的經緯度,百度地圖的經緯度,都列出來,看看到底那一塊出錯了。

發現高德的經緯度和HTML5的經緯度基本相同,HTML5的經緯度經過轉化的經緯度和百度地圖的經緯度基本相同。
這四個經緯度的具體差異參考[百度地圖,高德地圖,HTML5經緯度比較](http://blog.csdn.net/xuexiaodong009/article/details/49246459)
經過實際測試,百度地圖獲取的周邊信息比高德地圖獲取的周邊信息要準不少,高德地圖獲取的周邊信息經常偏差四五公里,但百度地圖就會好很多,基本上在一公里以內。
因此我還是決定使用百度地圖,但百度地圖偶爾錯的離譜如何修正呢?
百度地圖一次錯的離譜的定位:

既然決定使用百度地圖定位,那么這個錯誤就不能不修正,但如何修正呢?使用高德地圖,高德地圖雖然沒有這么離譜的事,但我測試,誤差經常是四五公里,實在是太大了。
那有沒有更好的方法呢?
最終我發現,在百度地圖沒有問題時,獲取的省市區和高德地圖的省市區是一致的,在百度地圖出現異常時,省市區是不一致的,因此我采用了,以百度地圖為主,高德地圖為輔的方式,修正了百度地圖的偶爾出現的錯誤,在發現錯誤時,讓員工刷新重新獲取地理信息,來修正百度地圖的這個偶爾出現的錯誤。其實也可以采用比較HTML5的經緯度和百度地圖經緯度比較的方式進行修正,但我目前沒有采用。
參考文章
[關于地圖坐標和定位偏差](http://www.cnblogs.com/mengdd/p/3463919.html)
[中國地圖偏移問題](http://blog.csdn.net/caz28/article/details/8143609)