聊聊GIS中的座標系|再版

本文約6500字,建議閱讀時間15分鐘。php

做者:博客園/B站/知乎/csdn/小專欄 @秋意正寒html

版權:轉載請告知,並在轉載文上附上轉載聲明與原文連接(http://www.javashuo.com/article/p-fxqpxnbk-cd.html)。程序員

【目錄】算法

  • 1. 經緯度與米【告訴你們GIS中的座標系核心的兩種座標系定義,地理座標系統vs投影座標系統】
  • 2. 爲何有兩種表達(不一樣點)
  • 3. 內在聯繫(相同點)【指出投影座標系統的廣義定義,即PCS=f(GCS)】
  • 4. 經常使用座標系統(4.1 WKID;4.2 地理座標系統;4.3 投影方法;4.4 投影座標系統;4.5 GCJ02與BD09;4.6 經緯度直投)
  • 5. 經常使用座標系統的判別與經常使用軟件中的操做(待補充)
  • 個人牢騷與參考文檔

1. 經緯度(例: 119.32°E, 32.48°N)與(∟, 直角座標)

讓基礎淺薄的同窗、GIS外行疑惑的,可能就是這兩種「單位」的座標值,以及他們的轉換了吧。spring

2019年是一個不一樣尋常的年份,大大小小的地震總能被人民日報大V轉發。編程

地震信息通常會帶什麼呢?api

這是一條地震消息,它除了時間、地震等級等消息外,有一個很重要的消息:北緯36.16度,東經98.93度,爲了方便,咱們用數學的座標表示法:網絡

點P,P(98.93°E, 36.16°N)函數

其中,E就是單詞East(東),N就是單詞North(北)。工具

咱們先引入兩個定義(敲重點):

  • 地理座標系統(英文簡寫GCS,Geographical Coordinate System)
  • 投影座標系統(英文簡寫PCS,Projection Coordinate System)

上述地震點,它用角度值來表示某個點,儘管角度值能夠是十進制度,也能夠是度分秒(參考初中數學知識)咱們說,這種表示空間上的點所用到的座標參考,叫作地理座標系統。

與之相對的,用米、公里這種單位表達的,咱們在初中數學裏很熟悉的,用笛卡爾平面直角座標系表示的點,咱們說它用的是「投影座標系統」。

注意了!

這個定義是嚴格的,請用這一組概念繼續閱讀,我知道讀者可能在此以前會看過所謂的「大地座標系統」、「平面座標」、「經緯度座標」等表達,可是,至少在我這裏,請用個人這組定義。

咱們如今說的,是地理數據的數學基礎,即座標系它本身自己的定義,如今,我說地理數據用的座標系有「地理座標系統」和「投影座標系統」兩種,但不止這兩種。

2. 爲何有兩種表達(不一樣點)

爲何會有這些差異呢?

咱們還要從地球的形狀提及。地球是一個近似的橢球,越靠近赤道,越肥。固然,這個「肥」在地球這個尺度下,好幾千公里vs20公里,幾乎看不出來。

咱們GIS是講究數學的,必須用數學的語言。地球既然是個「橢球」,天然就能夠用三維的座標系統來描述。經緯度,就是解析立體幾何裏用的「球面座標系統」。

有好奇的同窗會問了,三維座標有三個座標值啊,爲何只有經緯度呢?(笑)

在這,咱們不畫圖,也不展開,我在以後的講解種會展開地理座標系統的嚴格定義。可是投影座標系統的廣義定義很是簡單,下一節就講了。

如今,在數學上,只需知道(經度、緯度)是球面座標系的下的兩個份量罷了。

而在地理上,(經度、緯度)則是用角度值表達的「地理座標系統」的兩個份量。

咱們拿一個地球儀來看看:

若是初中地理知識過關的話,我認爲都能認出:南北極點的經線很是密集,緯線乾脆就從赤道的一個大圓變成了一個點。反而越靠近赤道,緯線圈越大,經線圈的距離也越大。

咱們計算矩形的面積是怎麼計算的了?

S=a×b,a爲長邊長,b爲短邊長。

這種「非線性」的變化,就不能用1個經度×1個緯度來表示面積了,由於不一樣經緯度的地方,1個經度和1個緯度表明的長度並不同。

正是這個「幾何上的計算」的麻煩,因此在計算幾何有關值(長度、面積)時,你們更喜歡在【笛卡爾直角座標系】上計算,也即「投影座標系統」。

一般,在表示位置的時候,咱們喜歡說「xx度東經,yy度北緯」,由於這個基於整個地球,用這簡單的兩三位數字(不包括小數)就能夠精肯定位到地球的任意一點。

而在局部某個地區,能夠是某個市的行政區,某個省的某幾個市,咱們喜歡用平面直角座標來計算長度、面積。

這就是「地理座標系統」和「投影座標系統」的一個最原始的需求差別。

事實上,用角度來計算面積在高等數學中並不是難事,可是,能用S=a×b來算,先人就不會用複雜的表達式了。

因此,

既然一個擅長定位,一個擅長計算,兩者是如何聯繫在一塊兒的呢?

是啊,咱們只有一個地球,可是能夠用不一樣的表達方法(沒錯,就是座標系統)來描述同一個地方,座標系這個小東西確實讓一些人頭疼啊。

3. 內在聯繫(相同點)

上來開大,投影座標系統的廣義定義以下:

投影座標系統 = f(地理座標系統)

咱們說,投影座標系統是基於一個法則f和一個地理座標系統而定義的。

這個定義是一個廣義定義,有更精確的定義於之後講解。

  • 法則f:學名「投影方法」,簡稱「投影」
  • 地理座標系統:非精肯定義見上文

爲何球面座標(角度值)能經過一個投影方法f計算獲得平面直角座標(公里、米)呢?

如何以曲化直呢?

這得得益於數學家的功勞,趕忙給高斯、牛頓、萊布尼茨、拉格朗日、歐拉這些大佬燒香啊~

舉個最簡單的例子,在平面上,用角度+長度表達的極座標就能經過一組簡單的公式換算到平面直角座標:

  • x=R×sin∠A
  • y=R×cos∠A

具體定義不扯太遠,可是,這個法則f遠遠比這兩個公式複雜得多。

在這裏,只需記住,一個投影座標系統,必然包括一個投影方法和一個地理座標系統的定義

那麼,

  • 投影方法有哪些呢?
  • 地理座標系統有哪些呢?
  • 基於某個地理座標系統,又有哪些投影座標系統呢?
  • 在軟件上又是如何識別和計算、操做的呢?

死亡四連問啊,不要緊,立刻解答。

4. 經常使用座標系統

4.1. 一對名詞:WKID與EPSG

WKID即Well Known ID,衆所周知的ID號的意思。EPSG是管理這些ID號的一個組織,網站是epsg.io

一般來講,一個GIS裏的座標系統,必須有一個WKID,某些特別的除外,下面會講。

例如,WKID=4326,即WGS84這個地理座標系統的ID。

注意!!!

地理座標系統和投影座標系統均使用這套定義,可是不會重複,也沒有規律說哪一段數字是地理座標系統,哪一段是投影座標系統。

幸運的是,咱們並不須要徹底記完,網上這個WKID大全列表很容易找到,並且只需記住項目中用的、以及常見的便可。

4.2. 常見地理座標系統及WKID

①WGS84(WKID=4326)

美國GPS使用的一個全球地理座標系統,osm地圖、谷歌地圖(國外版)、Landsat系列衛星影像圖等均在地理座標系統上使用了這個,有許多開發地圖的api默認是使用WGS84的,WGS84使用極其普遍。

全稱 World Geodetic System 1984。咱們在網上交流的數據大多數也是WGS84的,畢竟osm地圖是開源免費的,任意下載。

須要注意的是,加密前的高德、百度用的也是WGS84,有關高德百度等常見國內電子地圖的座標系統,在4.5節會詳細介紹。

②CGCS2000(WKID=4490)

我國的GPS系統-北斗導航系統以及國家發行的「天地圖」,用的是這一套地理座標系統,中文名「中國國家2000地理座標系統」,英文全稱翻譯名「中國大地座標系2000」。

英文名 China Geodetic Coordinate System 2000。

③北京5四、西安80

是我國已經逐漸中止使用的兩個地理座標系統。

北京54座標系統WKID是4214,西安80座標系統的WKID是4610。

儘管有大量歷史遺留數據仍採用這兩個座標系統,做爲學習研究使用固然是能夠的,可是建議儘快轉移到國家2000座標系來(轉換方法暫且不說,之後會說)。

小補充:

北京54是建國初,在當時技術條件不高時「引」蘇聯的地理座標系統到我國境內的,在地理座標系統的精肯定義時會詳細展開爲什麼北京54在我國境內爲什麼有較大誤差。

而西安80則是改革開放後,技術稍好,爲解決北京54誤差問題,爲我國各項事業發展搞的一個適用於國內的地理座標系統。

爲何會啓用國家2000呢?也留到之後地理座標系統的精肯定義來談,感興趣的朋友能夠等等我。

④美國經常使用地理座標系統

NAD2七、NAD83

4.3. 常見投影方法

什麼是投影?這裏,待投影的「東西」是地球表面這個曲面——投影到哪裏?假如地心有一個燈泡,燈泡的光線能把地表照射到一個面上,而這個面能夠展開成爲平面,咱們說投影到的這個面,叫投影面。

 

 

(網絡圖,燈光將物體投影到牆面這個平面,牆面與物體呈垂直方向,即縱軸投影)

事實上,能展開成平面的面有平面自己、橢圓柱面、圓錐面(好像就見過這仨)等。根據投影面和地球的相對位置,能夠有很是多種投影方法。

①高斯克呂格(Gauss - Kruger)

高斯克呂格是由高斯和克呂格兩人一塊兒搞的投影法則,投影面是一個橢圓柱面打橫着套在地球的數學橢球面上,圍繞地軸旋轉,將地球表面投影到該橢圓柱面的一種投影方法。

不懂?看圖:

 

 

以某條經線與橢圓柱面相切(這條經線就叫中央經線),投影到橢圓柱面後,再沿着橢圓柱面的高剪開攤成平面,就是高斯投影的原理啦。

高斯克呂格投影是分帶的,經度不是有東西各180度嗎?因此能夠按3度或者6度剝開一瓣用於投影。

 

 

旋轉高斯克呂格的投影面,能夠獲取下一個分帶的投影,以合適全球全部的地方。

請讀者發揮一下想象力,由於從圖上看,越遠離中央經線的地方投影到橢圓柱面上,變形越嚴重,反而是中央經線附近的地方很是能貼合投影面。

--- 若是不懂也不要緊,咱們已經能給出高斯投影的學名了:橫軸(由於投影面是躺着的 與地軸垂直)切(由於與地表面是相切關係)橢圓柱(投影面是橢圓柱面)投影。

實際上,高斯克呂格投影也叫「橫軸墨卡託投影」,由於投影面是(橢)圓柱面的投影均叫「墨卡託投影」,見第②點。

②墨卡託投影(Mercator)

墨卡託發明的投影叫墨卡託投影,特色是縱軸,即投影面是個圓柱,與地球赤道相切(立着的水管裏塞了個乒乓球),學名:正軸切圓柱投影。

 

 

(網絡圖片)

③UTM投影(Universal Transverse Mercator)

全稱「通用橫軸墨卡託投影」,和高斯克呂格投影很是類似,只不過它並非切於經線圈,而是穿地球而過。咱們從側面來看,高斯投影面和經線圈是徹底重合的,可是UTM則不是:

 

 

(網絡圖片,很複雜,但很形象)

UTM投影是貫穿地球的,應該是側面上看相割。

UTM投影爲美國陸軍工程兵測繪局於20世紀40年代提出。當時對美國本土採用Clarke 1866橢球體,對全球其它地方採用其餘橢球體。

UTM投影如今採用WGS84地理座標系統進行投影。

如今,不少遙感影像圖用的就是UTM投影出來的投影座標系統。

③網絡墨卡託(WebMercator)

Web Mercator投影不是嚴格意義的墨卡託投影,而是一個僞墨卡託的投影方法,這個僞墨卡託投影方法的大名是 Popular Visualization Pseudo Mercator,PVPM。

由於這個投影方法是Google Map最早發明並使用的。

它的地理上的不嚴謹性在於,在投影過程當中,將表示地球的橢球面做爲正球面處理

傳說中是由於谷歌程序員懶得用橢球面來編程計算屏幕座標...

有關網絡墨卡託,還有一段更有趣的故事,見參考文獻。

④蘭伯特(Lambert)投影與阿爾伯斯(Albers)投影

蘭伯特投影,投影面是圓錐面,更像是一個圓錐筒子套在一個球上(圖a):

 

 

此時的蘭伯特投影是切圓錐投影,固然蘭伯特也能夠是割圓錐投影(圖b)。

它相似於阿爾伯斯投影,不一樣之處在於其描繪形狀比描繪面積更準確。

中國國家全幅地圖、美國國家平面座標系對全部具備較大東西範圍的區域均使用此投影。國際上用此投影編制1∶100萬地形圖和航空圖。

而阿爾伯斯投影常見於我國的省區投影,由於面積更準確。

阿爾伯斯投影是一種圓錐等面積投影。

* 補充:蘭伯特投影還有另一種投影方法,投影面並非圓錐面,而是平面。見維基定義上的圖:

4.4. 常見投影座標系統及WKID

①基於高斯克呂格投影的投影座標系統族

在我國,基於北京5四、西安80、國家2000,都可以使用高斯克呂格投影定義出投影座標系統。

由於地理座標系統有這三個(實際上高斯克呂格投影在別的國家的地理座標系統也能夠起做用),加上高斯克呂格投影方法容許分帶表達,

因此,該投影座標系統族有不少個,以WKID=4547爲例。

WKID=4547這個投影座標系統是這樣定義的:

基於國家2000座標系,使用3度高斯分帶,中央經線爲東經114°,使用高斯克呂格投影的投影座標系統,而且平面座標系統的經度方向上,座標值有投影帶號。

簡寫爲:3度投影帶114°中央經線的高斯投影座標系統(2000座標帶帶號)。

那麼不帶帶號的呢?座標值若不帶帶號的投影座標系統會產生重疊。WKID=4526正是WKID=4547這個帶帶號的PCS對應的無帶號的投影座標系統。

在ArcGIS中,區分有無帶號,從投影座標系統的名稱中能夠看出:

  • CGCS2000_3_Degree_GK_CM_111E:有CM即帶帶號(在名稱裏用中央經線)
  • CGCS2000_3_Degree_GK_Zone_30:有Zone則不帶帶號(在名稱裏寫出來了)
  • Beijing_1954_3_Degree_GK_CM_111E:(同上)
  • Beijing_1954_3_Degree_GK_Zone_35:(同上)
  • Xian_1980_3_Degree_GK_CM_111E:(同上)
  • Xian_1980_3_Degree_GK_Zone_34:(同上)

以上爲國家2000、北京5四、西安80在「GK投影(高斯克呂格投影)」下同一中央經線,座標值內帶投影帶與不帶投影帶投影座標系統的名稱。

總結:經常使用的高斯投影的PCS族,在我國,地理座標系統只有北京5四、西安80、國家2000,根據中央經線按需選用。

②基於UTM投影的投影座標系統族

和①中高斯投影座標系統族相似,只不過僅僅基於WGS84。

分帶與名稱再也不贅述,按中央經線自行使用便可。

③基於網絡墨卡託(WebMercator)的投影座標系統

只有一個,WKID=3857。

有趣的是,網絡墨卡託投影座標系統還有102100、900913這倆ID,有興趣的朋友能夠看參考文獻裏的《Web Mercator 公開的小祕密》一文。

當前,我國的高德、百度、騰訊地圖,谷歌地圖(國內國外均)、osm地圖都用了網絡墨卡託來平面化展現,只不過國內高德百度騰訊和國內谷歌地圖的地理座標系統通過加密,加密知識見4.5節。

而天地圖雖然用的是國家2000地理座標系,可是也提供了墨卡託投影方法來展現平面地圖。

ArcGIS Earth這個免費的小軟件則直接使用3857座標系(和Google Earth相似)。

④基於蘭伯特與阿爾伯斯的投影座標系統

時間緣由,此處暫不列舉WKID,總之我國大公雞圖喜歡用阿爾伯斯投影,我國省區圖喜歡用蘭伯特圓錐投影。

⑤不常見投影座標系統

我國因部分地區建設需求,本身給本身定義了投影座標系統,在個人實踐經驗中,見過的有:NJ08座標系(基於CGCS2000)、廣州地方座標系(基於CGCS2000)等。

4.5. 假座標系統:GCJ02與BD09

在4.4節的第③點中已經說起,國內高德、百度、騰訊和國內谷歌地圖的地理座標系統均通過加密。

它們使用的都是WGS84座標系(坊間傳)。

由於國家保密須要,網絡地圖至少要用一種特殊的算法進行加密,那就是大(e)名(chou)鼎(bu)鼎(kan)的加密算法——GCJ02。(固然,天地圖沒有加密,直接是CGCS2000)

民間也叫火星座標系,它加密後的WGS84座標,與真實的WGS84座標是有偏差的,這個偏差值並不固定,一般是幾十米到幾百米。

GCJ02加密算法是一種多項式+正弦函數加密算法,一般隔一段時間就換一下參數,因此,網上所謂的解密算法並非官方的精確算法,隔一段時間說不定就不許確了。

有關WGS84和GCJ02,能夠查閱參考文檔裏的《關於GCJ02和WGS84座標系的一點實驗》,出自李民錄。這裏摘抄一張圖,是我國各個地區GCJ02加密後的不一樣偏移值:

 

 

百度地圖更爲噁心,在GCJ02的基礎上再次偏移,也就是BD09。

這個加密算法並不公開,須要找有關部門交錢審覈才能獲取,並且沒有精確的反向算法(多項式咋反向啊)。

因此,知道爲何說GCJ02/BD09是「假的座標系」了吧?

4.6. 經緯度直投

這是一個很是噁心的作法,即把經緯度等同直角座標來繪製,這樣就有一個後果:

當緯度=90度時,理論上有無限個點(即經度有無限個),若經緯度=直角座標,那麼赤道有多長,極點就展開拉的有多長。

這種拉扯是很是噁心的,天地圖就這麼幹,在我國高緯度地區,使用經緯度直投的繪製方法,會使得原本直角相交的兩條道路斜變:

 

 

 

 

 

(天地圖,黑龍江佳木斯市兩種投影的對比,上圖爲經緯度直投)

這也是ArcMap的默認「投影」,一般比較醜,尤爲是高緯度地區變形很是嚴重,可是勝在渲染速度快。

5. 經常使用座標系統在軟件中的判別與操做

5.1. 判別(具體問題具體分析)

  • 若是數據有座標系統的定義,則能夠從數據的座標系統中得知座標系(假如定義的正確)。
  • 若是數據沒有座標系統定義,須要經過觀察數據座標值來判斷GCS、PCS類型,則須要必定的經驗。
  • 若是數據是兩位數+三位數或者三位數+三位數等落於我國經緯度範圍的數字,則能夠大體判斷是地理座標系統,只需詢問數據提供者,而後本身爲數據定義地理座標系統便可。
  • 若是給的數據尺度很小,例如是一個廠房,並且一個單位數值差很少就是1米,則判斷是CAD繪圖,是未經校準的平面直角座標系,能夠理解爲投影座標系,只不過位置並不許確罷了,須要校準。
  • 若是給的數據單位很大,一般是幾萬、幾十萬(5位數+6位數,是無投影帶的,5位數是經線x方向,6位數是緯線y方向)(6位數+7位數,是有投影帶的,6位數是緯線y方向,7位數是經線x方向,經過7位數的前兩個數字判斷投影帶),此時能夠粗略判斷是投影座標系統。
  • 若是均不是以上的數值,則判斷爲誤操做,多是錯誤定義了座標系,也多是錯誤進行投影計算。

5.2. 操做:以主流軟件爲例

①ArcMap

簡單講一下,在arcgis - arcmap中,在數據管理工具箱>投影工具集下,是處理座標系統的強大工具。

「定義投影」工具,是爲無座標系統定義的數據定義GCS或PCS用的;

「投影」工具,是轉換座標系統用的,能夠由GCS投影到指定PCS,也能夠由PCS轉到指定GCS(能夠是PCS定義內的GCS,也能夠是其餘GCS),也能夠由PCS轉到另外一個PCS(換投影帶,或者連GCS、PCS一塊兒換)

>注意,跨GCS的「投影」操做,須要「地理轉換」輔助,有關地理轉換,會專門出一篇博客講解。

「投影柵格」工具,是轉換柵格數據用的,用法同「投影」工具。

之後放圖及其餘軟件的操做。

 

自我嘮叨

上一篇《聊聊GIS中的座標系》是我大三結束那個暑假頭腦一熱寫的。好的,這一篇仍是我腦子一熱寫的,我寫這篇花了我一個週末的某個凌晨(總算在全面小康前完成了上一篇的允諾...)。

我寫以前還瘋狂沉迷於《咱們沒法一塊兒學習》的古橋文乃和《總之就是很是可愛》的由崎司……跑題了

我一般說,數據是GIS的生命源泉。而GIS數據,萬惡之源則在座標系統,千里長征,毀於一旦。

有多少外行由於座標系統崩潰?有多少專業內,或者鄰專業的同窗根本看不懂或者聽天書呢?應該不少吧。畢竟,我蹲了不下10個專業羣(有幾個廣告太多了退了),有超過半數是開發羣。

毛主席說過,去粗取精,去僞存真,由此及彼,由表及裏。

我能作的一些工做,就是精煉概念,給你們作一些小小的工做,讓你們儘量短的時間瞭解座標系統,文章如有錯誤,請友好指出。(呼~ 總算更新回來了,加[咕]油[咕])

參考文檔

[1] epsg組織官網:http://epsg.io

[2] UTM投影與高斯克呂格投影及其變換實現:http://wap.sciencenet.cn/home.php?mod=space&uid=856115&do=blog&id=839212

[3] 聊聊GIS中的座標系:http://www.javashuo.com/article/p-bcjlqxej-ec.html

[4] 天地圖:https://map.tianditu.gov.cn/

[5] GMT中文手冊:https://docs.gmt-china.org/latest/proj/Ju/

[6] 維基百科英文版:

https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system

https://en.wikipedia.org/wiki/Lambert_conformal_conic_projection

https://en.wikipedia.org/wiki/Albers_projection

[7] WebMercator 正反算公式:https://blog.csdn.net/iispring/article/details/8565177

[8] WebMercator公開的小祕密:https://blog.csdn.net/kikitamoon/article/details/46124935

[9] 李民錄. 關於GCJ02和WGS84座標系的一點實驗:https://blog.csdn.net/liminlu0314/article/details/42564039

相關文章
相關標籤/搜索