最近在作移動APP的定位功能的時候發現系統GPS獲取的位置信息再從百度地圖API獲取的實際地址老是有偏差,偏離了好幾個街道,但百度地圖自己沒這個問題。在網上查找一番發現了地圖的座標系一說,下面簡單介紹一下主流的座標系:javascript
1.GCJ-02 俗稱火星座標系,由中國國家測繪局制訂的地理信息系統的座標系統。通常中國官方發佈的地圖上標註的經緯度都是這種座標系的,與實際經緯度有誤差。java
2.WGS84:World Geodetic System 1984,俗稱地球座標系,是爲GPS全球定位系統使用而創建的座標系統。通常手持設備(好比手機)從GPS衛星獲取的座標系就是這個座標系。google地圖、soso地圖、aliyun地圖、mapabc地圖和amap地圖所用此座標api
3.墨卡託(Mercator)座標系,是由荷蘭地圖學家墨卡託(Mercator)在1569年擬定,假設地球被圍在一箇中空的圓柱裏,其赤道與圓柱相接觸,而後再假想地球中心有一盞燈,把球面上的圖形投影到圓柱體上,再把圓柱體展開,這就是一幅標準緯線爲零度(即赤道)的「墨卡託投影」繪製出的世界地圖。google
4.BD-09 百度座標系,百度在GCJ-02要求加密的基礎上,又本身對座標加密了一次。加密
咱們正常使用的時候調用須要根據不一樣的地圖類型進行座標轉換 百度地圖提供了這個轉換API:spa
http://developer.baidu.com/map/changeposition.htmhtm
返回:接口
{ status : 0, result : [ { x : 114.23074871003, y : 29.579084787993 }, { x : 114.23075628327, y : 29.579081090996 } ] }
在根據返回的座標調用百度地圖的API 就能返回準確的地址了。ip
百度的API上有段話:
注:本接口支持回調。另外,同一個GPS座標屢次轉爲百度座標時,每次轉換結果都不徹底同樣,偏差在2米範圍內,屬於正常偏差,不影響正常使用。
呵呵~