一。在進行地圖開發過程中,我們一般能接觸到以下三種類型的地圖坐標系:
1.WGS-84原始坐標系,一般用國際GPS紀錄儀記錄下來的經緯度,通過GPS定位拿到的原始經緯度,Google和高德地圖定位的的經緯度(國外)都是基于WGS-84坐標系的;但是在國內是不允許直接用WGS84坐標系標注的,必須經過加密后才能使用;
2.GCJ-02坐標系,又名“火星坐標系”,是我國國測局獨創的坐標體系,由WGS-84加密而成,在國內,必須至少使用GCJ-02坐標系,或者使用在GCJ-02加密后再進行加密的坐標系,如百度坐標系。高德和Google在國內都是使用GCJ-02坐標系,可以說,GCJ-02是國內最廣泛使用的坐標系;
3.百度坐標系:bd-09,百度坐標系是在GCJ-02坐標系的基礎上再次加密偏移后形成的坐標系,只適用于百度地圖。(目前百度API提供了從其它坐標系轉換為百度坐標系的API,但卻沒有從百度坐標系轉為其他坐標系的API)
二。為什么會發生偏移?
1.由于坐標系之間不兼容,如在百度地圖上定位的經緯度拿到高德地圖上直接描點就肯定會發生偏移;只考慮國內的情況,高德地圖和Google地圖是可以不經過轉換也能夠準確顯示的(在國內用的都是GCJ-02坐標系);下面是收錄了網上的WGS-84,GCJ-02,百度坐標系(bd-09)之間的相互轉換的方法,經測試,是轉換后相對準確可用的:
[java] view plain copy
3.定位方式,在iOS定位的經緯度是通過GPS獲取的,在Android則可以通過網絡或GPS獲取經緯度。通過地圖SDK定位獲取的經緯度,地圖SDK會自動選擇加密的方式(如Google地圖會根據國內國外選擇不同的坐標系)然后再將點顯示在地圖上,這個時候是沒有偏移的;如果直接將經緯度在地圖上顯示,可能就會因為地域或網絡的問題導致使用的坐標系不同,進而發生來偏移。
新聞熱點
疑難解答