
前言
- 開(kāi)發(fā)地圖應(yīng)用服務(wù)時(shí),一定會(huì)接觸到各種坐標(biāo)系,而保證坐標(biāo)系的正確與合理是一切數(shù)據(jù)分析的前提。
- 這篇文章就梳理了一些常見(jiàn)的地理坐標(biāo)系,希望能幫上忙。
1、地理坐標(biāo)系與投影坐標(biāo)系
總的來(lái)說(shuō),坐標(biāo)系可以分為兩大類:地理坐標(biāo)系(Geographic Coordinate System, GCS)和投影坐標(biāo)系(Projected Coordinate System, PCS),地理坐標(biāo)系進(jìn)行地圖投影后就變成了投影坐標(biāo)系。例如我們常見(jiàn)的世界地圖,使用的就是一種 墨卡托投影。

其中地理坐標(biāo)系又可分為 參心坐標(biāo)系 和 地心坐標(biāo)系,常見(jiàn)的參心坐標(biāo)系北京54、西安80,常見(jiàn)的地心坐標(biāo)系有WGS84、GCJ-02、BD-09、GCS2000,這篇文章的側(cè)重點(diǎn)是地心坐標(biāo)系,其他內(nèi)容不再贅述,有興趣可以參考相關(guān)文章:
- GIS基礎(chǔ)教程之坐標(biāo)系 —— 天涯印象
- 干貨分享|破解ArcGIS坐標(biāo)系之惑: 從基本概念到常用操作 —— 李郎平

2、地心坐標(biāo)系
2.1 WGS84(World Geodetic System 1984)
WGS84是為 GPS 全球定位系統(tǒng)建立的坐標(biāo)系統(tǒng),是世界上第一個(gè)統(tǒng)一的地心坐標(biāo)系,因此也被稱為大地坐標(biāo)系、原始坐標(biāo)系。一般通過(guò)GPS記錄儀記錄下來(lái)的經(jīng)緯度,就是基于WGS84坐標(biāo)系的數(shù)據(jù)。
2.2 GCJ-02(國(guó)家測(cè)量局02號(hào)標(biāo)準(zhǔn))
GCJ-02 是由中國(guó)國(guó)家測(cè)繪局(G表示Guojia國(guó)家,C表示Cehui測(cè)繪,J表示Ju局)制訂的地理信息系統(tǒng)的坐標(biāo)系統(tǒng),是在WGS84經(jīng)緯度的基礎(chǔ)上執(zhí)行加密算法而成。因?yàn)镚PS得到的經(jīng)緯度直接在 GCJ-02 坐標(biāo)系下會(huì)定位到錯(cuò)誤的地點(diǎn),有種到了火星的感覺(jué),因此在坊間也將 GCJ-02 戲稱為火星坐標(biāo)系。
國(guó)測(cè)局規(guī)定,國(guó)內(nèi)出版的各種地圖系統(tǒng)(包括電子形式),必須至少采用 GCJ-02 對(duì)地理位置進(jìn)行首次加密的坐標(biāo)系,高德和Google在國(guó)內(nèi)都是使用 GCJ-02 坐標(biāo)系,而百度使用的是在 GCJ-02 基礎(chǔ)上再一次加密的 BD-09 坐標(biāo)系。
舉個(gè)例子,北京天安門(mén)中心的GPS經(jīng)緯度是39°54'26.2"N,116°23'28.4"E,轉(zhuǎn)化為度的單位就是39.907270, 116.391213(提示:小數(shù)部分 = 分 / 60 + 秒 / 3600),我們?cè)诠雀璧貓D(或高德地圖)里定位到這個(gè)經(jīng)緯度看看:

可以明顯觀察到偏移,現(xiàn)在我們將 GPS 坐標(biāo)轉(zhuǎn)換為 GCJ-02 坐標(biāo):116.397454,39.908671,再定位一次:

需要注意的是,如果切換到谷歌地圖的衛(wèi)星地圖模式,它使用的是WGS84坐標(biāo)系哦,此時(shí)使用天門(mén)門(mén)的 GPS 坐標(biāo)可以定位到正確位置,如下所示:

主流地圖在各個(gè)地區(qū)使用的坐標(biāo)系(數(shù)據(jù)出處:百度、高德)
| 地圖 | 大陸/港/澳 | 臺(tái)灣省 | 海外 |
|---|---|---|---|
| 高德 | GCJ-02 | WGS84 | WGS84 |
| GCJ-02 | WGS84 | WGS84 | |
| 百度 | BD-09 / GCJ-02 | BD-09 / GCJ-02 | WGS84 |
3、坐標(biāo)系轉(zhuǎn)換
國(guó)測(cè)局規(guī)定:互聯(lián)網(wǎng)地圖在國(guó)內(nèi)必須至少使用 GCJ02 進(jìn)行首次加密,不允許直接使用 WGS84 坐標(biāo)下的地理數(shù)據(jù),同時(shí)任何坐標(biāo)系均不可轉(zhuǎn)換為 WGS84 坐標(biāo)。因此不存在將 GCJ-02 坐標(biāo)轉(zhuǎn)換為 WGS84 坐標(biāo)的官方轉(zhuǎn)換方法。
3.1 轉(zhuǎn)換為高德坐標(biāo)
3.2 轉(zhuǎn)換為百度坐標(biāo)
3.3 非官方轉(zhuǎn)換方法
因?yàn)?高德和百度 SDK 沒(méi)有提供從 GCJ-02 坐標(biāo)轉(zhuǎn)換為 WGS84 的方法,或者你不希望集成 SDK 來(lái)轉(zhuǎn)換坐標(biāo)系,可以參考這篇文章。
相關(guān)資源
- 高德開(kāi)放平臺(tái)、 百度地圖開(kāi)放平臺(tái)、谷歌地圖開(kāi)放平臺(tái)
- 高德坐標(biāo)拾取、百度坐標(biāo)拾取、谷歌坐標(biāo)拾取、在線坐標(biāo)轉(zhuǎn)換
- 國(guó)家基礎(chǔ)地理信息中心、中測(cè)網(wǎng)
推薦閱讀
- 開(kāi)發(fā)者 | 幾個(gè)提高遠(yuǎn)程辦公效率的小建議
- 開(kāi)發(fā)者 | 那些令人“奔潰”的 UI 驗(yàn)收
- Dart | 徹底理解Dart中的庫(kù)與訪問(wèn)可見(jiàn)性
- Android | 代碼壓縮、優(yōu)化與混淆 — ProGuard與R8
- Android | 自定義屬性
- Android | InputManagerService 與輸入事件采集
- 工具集 | Android Studio — 使用 Live Template 輸入模板代碼
- 自媒體 | 使用LaTeX編寫(xiě)數(shù)學(xué)公式
2020 永遠(yuǎn)不要放棄希望,祝愿大家都能夠平安健康!武漢加油!
