(轉)ARCGIS中坐標轉換及地理坐標、投影坐標的定義


原文地址:http://blog.sina.com.cn/s/blog_663d9a1f01017cyz.html

1、動態投影(ArcMap)

所謂動態投影指,ArcMap中的Data 的空間參考或是說坐標系統是默認為第一加載到當前工作區的那個文件的坐標系統,后加入的數據,如果和當前工作區坐標系統不相同,則ArcMap會自動做投影變換,把后加入的數據投影變換到當前坐標系統下顯示!但此時數據文件所存儲的數據並沒有改變,只是顯示形態上的變化!因此叫動態投影!表現這一點最明顯的例子就是,在Export Data時,會讓你選擇是按this layer's source data(數據源的坐標系統導出),還是按照the Data (當前數據框架的坐標系統)導出數據!

2、坐標系統描述(ArcCatalog)

大家都知道在ArcCatalog中可以一個數據的坐標系統說明!即在數據上鼠標右鍵->Properties->XY Coordinate System選項卡,這里可以通過modify,Select、Import方式來為數據選擇坐標系統!但有許多人認為在這里改完了,數據本身就發生改變了!但不是這樣的!這里縮寫的信息都對應到該數據的.aux文件!如果你去把該文件刪除了,重新查看該文件屬性時,照樣會顯示Unknown!這里改的僅僅是對數據的一個描述而已,就好比你入學時填寫的基本資料登記卡,我改了說明但並沒有改變你這個人本身!因此數據文件中所存儲的數據的坐標值並沒有真正的投影變換到你想要更改到的坐標系統下!但數據的這個描述也是非常重要的,如果你拿到一個數據,從ArcMap下所顯示的坐標來看,像是投影坐標系統下的平面坐標,但不知道是基於什么投影的!因此你就無法在做對數據的進一不處理!比如:投影變換操作!因為你不知道要從哪個投影開始變換!因此大家要更正一下對 ArcCatalog中數據屬性中關於坐標系統描述的認識!

3、投影變換(ArcToolBox)

上面說了這么多,要真正的改變數據怎么辦,也就是做投影變換!在ArcToolBox->Data Management Tools->Projections and Transformations下做!在這個工具集下有這么幾個工具最常用:

1、Define Projection

2、Feature->Project

3、Raster->Project Raster

4、Create Custom Geographic Transformation

當數據沒有任何空間參考時,顯示為Unknown!時就要先利用Define Projection來給數據定義一個Coordinate System,然后在利用Feature->Project或Raster->Project Raster工具來對數據進行投影變換!由於我國經常使用的投影坐標系統為北京54,西安80!由這兩個坐標系統變換到其他坐標系統下時,通常需要提供一個Geographic Transformation,因為Datum已經改變了!這里就用到我們說常說的轉換3參數、轉換7參數了!而我們國家的轉換參數是保密的!因此可以自己計算或在購買數據時向國家測繪部門索要!知道轉換參數后,可以利用Create Custom Geographic Transformation工具定義一個地理變換方法,變換方法可以根據3參數或7參數選擇基於GEOCENTRIC_TRANSLATION和 COORDINATE_方法!這樣就完成了數據的投影變換!數據本身坐標發生了變化!當然這種投影變換工作也可以在ArcMap中通過改變Data 的Coordinate System來實現,只是要在做完之后在按照Data 的坐標系統導出數據即可!

方法一:

在Arcmap中轉換:

1、加載要轉換的數據,右下角為經緯度

2、點擊視圖——數據框屬性——坐標系統

3、導入或選擇正確的坐標系,確定。這時右下角也顯示坐標。但數據沒改變

4、右擊圖層——數據——導出數據

5、選擇第二個(數據框架),輸出路徑,確定。

6、此方法類似於投影變換。

方法二:

在forestar中轉換:

1、用正確的坐標系和范圍新建圖層aa

2、打開要轉換的數據,圖層輸出與原來類型一致,命名aa,追加。

方法三:

在ArcToolbox中轉換:

1、管理工具——投影(project),選擇輸入輸出路徑以及輸出的坐標系

2、前提是原始數據必須要有投影

 

地理坐標系與投影坐標系的區別

1、首先理解地理坐標系(Geographic coordinate system),Geographic coordinate system直譯為
地理坐標系統,是以經緯度為地圖的存儲單位的。很明顯,Geographic coordinate syst
em是球面坐標系統。我們要將地球上的數字化信息存放到球面坐標系統上,如何進行操作
呢?地球是一個不規則的橢球,如何將數據信息以科學的方法存放到橢球上?這必然要求
我們找到這樣的一個橢球體。這樣的橢球體具有特點:可以量化計算的。具有長半軸,短
半軸,偏心率。以下幾行便是Krasovsky_1940橢球及其相應參數。
Spheroid: Krasovsky_1940
Semimajor Axis: 6378245.000000000000000000
Semiminor Axis: 6356863.018773047300000000
Inverse Flattening(扁率): 298.300000000000010000
然而有了這個橢球體以后還不夠,還需要一個大地基准面將這個橢球定位。在坐標系統描
述中,可以看到有這么一行:
Datum: D_Beijing_1954
表示,大地基准面是D_Beijing_1954。
--------------------------------------------------------------------------------
有了Spheroid和Datum兩個基本條件,地理坐標系統便可以使用。
完整參數:
Alias:
Abbreviation:
Remarks:
Angular Unit: Degree (0.017453292519943299)
Prime Meridian(起始經度): Greenwich (0.000000000000000000)
Datum(大地基准面): D_Beijing_1954
Spheroid(參考橢球體): Krasovsky_1940
Semimajor Axis: 6378245.000000000000000000
Semiminor Axis: 6356863.018773047300000000
Inverse Flattening: 298.300000000000010000
2、接下來便是Projection coordinate system(投影坐標系統),首先看看投影坐
標系統中的一些參數。
Projection: Gauss_Kruger
Parameters:
False_Easting: 500000.000000
False_Northing: 0.000000
Central_Meridian: 117.000000
Scale_Factor: 1.000000
Latitude_Of_Origin: 0.000000
Linear Unit: Meter (1.000000)
Geographic Coordinate System:
Name: GCS_Beijing_1954
Alias:
Abbreviation:
Remarks:
Angular Unit: Degree (0.017453292519943299)
Prime Meridian: Greenwich (0.000000000000000000)
Datum: D_Beijing_1954
Spheroid: Krasovsky_1940
Semimajor Axis: 6378245.000000000000000000
Semiminor Axis: 6356863.018773047300000000
Inverse Flattening: 298.300000000000010000
從參數中可以看出,每一個投影坐標系統都必定會有Geographic Coordinate System。
投影坐標系統,實質上便是平面坐標系統,其地圖單位通常為米。地理坐標系統單位是度
那么為什么投影坐標系統中要存在地理坐標系統的參數呢?
這時候,又要說明一下投影的意義:將球面坐標轉化為平面坐標的過程便稱為投影。
好了,投影的條件就出來了:
a、球面坐標
b、轉化過程(也就是算法)
也就是說,要得到投影坐標就必須得有一個“拿來”投影的球面坐標,然后才能使用算法
去投影!
即每一個投影坐標系統都必須要求有Geographic Coordinate System參數。
3、我們現在看到的很多教材上的對坐標系統的稱呼很多,都可以歸結為上述兩種投
影。其中包括我們常見的“非地球投影坐標系統”。):
__________________
大地坐標(Geodetic Coordinate):大地測量中以參考橢球面為基准面的坐標。地面點P的位置用大地經度L、大地緯度B和大地高H表示。當點在參考橢球面上時,僅用大地經度和大地緯度表示。大地經度是通過該點的大地子午面與起始大地子午面之間的夾角,大地緯度是通過該點的法線與赤道面的夾角,大地高是地面點沿法線到參考橢球面的距離。
方里網:是由平行於投影坐標軸的兩組平行線所構成的方格網。因為是每隔整公里繪出坐標縱線和坐標橫線,所以稱之為方里網,由於方里線同時又是平行於直角坐標軸的坐標網線,故又稱直角坐標網。
在1:1萬——1:20萬比例尺的地形圖上,經緯線只以圖廓線的形式直接表現出來,並在圖角處注出相應度數。為了在用圖時加密成網,在內外圖廓間還繪有加密經緯網的加密分划短線(圖式中稱“分度帶”),必要時對應短線相連就可以構成加密的經緯線網。1:2 5萬地形圖上,除內圖廓上繪有經緯網的加密分划外,圖內還有加密用的十字線。
我國的1:50萬——1:100萬地形圖,在圖面上直接繪出經緯線網,內圖廓上也有供加密經緯線網的加密分划短線。
直角坐標網的坐標系以中央經線投影后的直線為X軸,以赤道投影后的直線為Y軸,它們的交點為坐標原點。這樣,坐標系中就出現了四個象限。縱坐標從赤道算起向北為正、向南為負;橫坐標從中央經線算起,向東為正、向西為負。
雖然我們可以認為方里網是直角坐標,大地坐標就是球面坐標。但是我們在一副地形圖上經常見到方里網和經緯度網,我們很習慣的稱經緯度網為大地坐標,這個時候的大地坐標不是球面坐標,她與方里網的投影是一樣的(一般為高斯),也是平面坐標。

 

關於坐標系(大地坐標、平面坐標、投影、北京54、西安80、WGS84)的一些理解

先從簡單說起,假設地球是正圓的,地球表面上的一點可以用經緯度來表示,這時的經緯度是唯一的。那什么情況下是不唯一的呢,就是地球不是正圓的時候。實際也是如此,地球本來就不是圓的,而是一個橢圓。關於這個橢圓並不是唯一的,比如克拉索夫斯基橢球,1975國際橢球等等。橢球的不同主要由兩個參數來體現,一個是長半軸、一個是扁率。之所以會有不同的橢球體出現,是因為地球太大了,地球不是一個正橢球體,一個橢球體不可能都滿足地球每個角落的精度要求,在一些邊緣地帶誤差會很大,在赤道附近有適合赤道使用的橢球體,在極圈附近有適合極圈的橢球地,一切都是為了符合當地的精度需要。如果你有足夠的需求也可以自定義一個橢球體。基於以上原因,這時經緯度就不是唯一的了,這個應該很好理解,當你使用克拉索夫斯基橢球體時是一對經緯度,當使用另外一個橢球體時又是另外一對經緯度。


經緯度表示的是地理坐標系,也稱大地坐標系。有時候用地理坐標系不夠方便,人們比較習慣於使用平面坐標系,平面坐標系用xy表示。


把球體表面的坐標轉成平面坐標需要一定的手段,這個手段稱為投影。投影方法也不是唯一的,還是為了一個目的,務求使當地的坐標最准確。所以目前就存在了好多投影方法,比如高斯投影、墨卡托投影等。誰有本事而且有那方面的需求也可以自創一套投影方法。


接下來是關於WGS84 北京54 西安80的概念
首先有WGS84 北京54 西安80大地坐標系,是用經緯度表示的,也有WGS84 北京54 西安80平面坐標系,使用xy表示的。


WGS84的橢球采用國際大地測量與地球物理聯合會第17屆大會測量常數推薦值
北京54采用的是克拉索夫斯基橢球
西安80采用的是1975國際橢球
所以地球表面上一點的這三者大地坐標是不一樣的,即經緯度是不一樣的。

目前比較流行的是高斯- 克呂格投影和墨卡托投影,當然也可以用別的投影,看實際需要了。

涉及到不同坐標系,就會有坐標轉的問題。關於坐標轉換,首先要搞清楚轉換的嚴密性問題,即在同一個橢球里的坐標轉換都是嚴密的,而在不同的橢球之間的轉換這時不嚴密的。例如,由1954北京坐標系的大地坐標轉換到1954北京坐標系的高斯平面直角坐標是在同一參考橢球體范疇內的坐標轉換,其轉換過程是嚴密的。由1954北京坐標系的大地坐標轉換到WGS-84的大地坐標,就屬於不同橢球體間的轉換。


不同橢球體間的坐標轉換在局部地區的采用的常用辦法是相似變換法,即利用部分分布相對合理高等級公共點求出相應的轉換參數。一般而言,比較嚴密的是用七參數的相似變換法,即X平移,Y平移,Z平移,X旋轉,Y旋轉,Z旋轉,尺度變化K。要求得七參數就需要在一個地區需要3個以上的已知點,如果區域范圍不大,最遠點間的距離不大於30Km(經驗值),這可以用三參數,即X平移,Y平移,Z平移,而將X旋轉,Y旋轉,Z旋轉,尺度變化K視為0,所以三參數只是七參數的一種特例。


如果不考慮高程的影響,對於不同橢球體下的高斯平面直角坐標可采用四參數的相似變換法,即四參數(x平移,y平移,尺度變化m,旋轉角度α)。如果用戶要求的精度低於20米,在一定范圍(2'*2')內,就直接可以用二參數法(ΔB,ΔL)或(Δx,Δy)修正。但在實際操作中,這也取決於選取的公共點是否合理,並保證其足夠的精度。

 

ArcGIS中的坐標系統定義與投影轉換

坐標系統是GIS數據重要的數學基礎,用於表示地理要素、圖像和觀測結果的參照系統,坐標系統的定義能夠保證地理數據在軟件中正確的顯示其位置、方向和距離,缺少坐標系統的GIS數據是不完善的,因此在ArcGIS軟件中正確的定義坐標系統以及進行投影轉換的操作非常重要。

ARCGIS中坐標轉換及地理坐標、投影坐標的定義

1. ArcGIS中的坐標系統

ArcGIS中預定義了兩套坐標系統,地理坐標系(Geographic coordinate system)和投影坐標系(Projectedcoordinate system)。

ARCGIS中坐標轉換及地理坐標、投影坐標的定義

1.1 地理坐標系

地理坐標系 (GCS) 使用三維球面來定義地球上的位置。GCS中的重要參數包括角度測量單位、本初子午線和基准面(基於旋轉橢球體)。地理坐標系統中用經緯度來確定球面上的點位,經度和緯度是從地心到地球表面上某點的測量角。球面系統中的水平線是等緯度線或緯線,垂直線是等經度線或經線。這些線包絡着地球,構成了一個稱為經緯網的格網化網絡。

GCS中經度和緯度值以十進制度為單位或以度、分和秒 (DMS) 為單位進行測量。緯度值相對於赤道進行測量,其范圍是 -90°(南極點)到 +90°(北極點)。經度值相對於本初子午線進行測量。其范圍是 -180°(向西行進時)到 180°(向東行進時)。

ArcGIS中,中國常用的坐標系統為GCS_Beijing_1954(Krasovsky_1940),GCS_Xian_1980(IAG_75),GCS_WGS_1984(WGS_1984),GCS_CN_2000(CN_2000)。

ARCGIS中坐標轉換及地理坐標、投影坐標的定義

1.2 投影坐標系

將球面坐標轉化為平面坐標的過程稱為投影。投影坐標系的實質是平面坐標系統,地圖單位通常為米。投影坐標系在二維平面中進行定義。與地理坐標系不同,在二維空間范圍內,投影坐標系的長度、角度和面積恆定。投影坐標系始終基於地理坐標系,即:

投影坐標系=地理坐標系+投影算法函數“。

我們國家的投影坐標系主要采用高斯-克呂格投影,分為6度和3度分帶投影,1:2.5萬-1:50萬比例尺地形圖采用經差6度分帶,1:1萬比例尺的地形圖采用經差3度分帶。具體分帶法是:6度分帶從本初子午線(prime meridian)開始,按經差6度為一個投影帶自西向東划分,全球共分60個投影帶,中國跨13-23帶;3度投影帶是從東經1度30分經線(1.5°)開始,按經差3度為一個投影帶自西向東划分,全球共分120個投影帶,中國跨25-45帶。

在CoordinateSystems\Projected Coordinate Systems\Gauss Kruger\Beijing 1954目錄中,我們可以看到四種不同的命名方式:

ARCGIS中坐標轉換及地理坐標、投影坐標的定義

Beijing 1954 (Xian 1980) 3 Degree GK CM 117E

北京54(西安1980) 3度帶無帶號

Beijing 1954 (Xian 1980) 3 Degree GK Zone 25

北京54 (西安1980) 3度帶有帶號

Beijing 1954 (Xian 1980) GK Zone 13

北京54 (西安1980) 6度帶有帶號

Beijing 1954 GK Zone 13N

Xian 1980 GK CM 75E

北京54 (西安1980) 6度帶無帶號

注釋:GK 是高斯克呂格,CM 是CentralMeridian 中央子午線,Zone是分帶號,N是表示不顯示帶號。

2. ArcGIS中定義坐標系

ArcGIS中所有地理數據集均需要用於顯示、測量和轉換地理數據的坐標系,該坐標系在 ArcGIS 中使用。如果某一數據集的坐標系未知或不正確,可以使用定義坐標系統的工具來指定正確的坐標系,使用此工具前,必須已獲知該數據集的正確坐標系。

該工具為包含未定義或未知坐標系的要素類或數據集定義坐標系,位於ArcToolbox—Data management tools—Projections andtransfomations—Define Projections

ARCGIS中坐標轉換及地理坐標、投影坐標的定義

Input Dataset要定義投影的數據集或要素類

CoordinateSystem為數據集定義的坐標系統

3.基於ArcGIS的投影轉換

在數據的操作中,我們經常需要將不同坐標系統的數據轉換到統一坐標系下,方便對數據進行處理與分析,軟件中坐標系轉換常用以下兩種方式:

3.1 直接采用已定義參數實現投影轉換

ArcGIS軟件中已經定義了坐標轉換參數時,可直接調用坐標系轉換工具,直接選擇轉換參數即可。工具位於ArcToolbox—Data management tools—Projections andtransfomations——Feature—Project(柵格數據投影轉換工具 Raster—Project raster),在工具界面中輸入以下參數:

Inputdataset:要投影的要素類、要素圖層或要素數據集

OutputDataset:已在輸出坐標系參數中指定坐標系的新要素數據集或要素類。

out_coor_system:已知要素類將轉換到的新坐標系

GeographicTransformation:列表中為轉換參數,以GCS_Beijing_1954轉為GCS_WGS_1984為例,各轉換參數含義如下:

Beijing_1954_To_WGS_1984_1 15918 鄂爾多斯盆地

Beijing_1954_To_WGS_1984_2 15919 黃海海域

Beijing_1954_To_WGS_1984_3 15920 南海海域-珠江口

Beijing_1954_To_WGS_1984_4 15921 塔里木盆地

Beijing_1954_To_WGS_1984_5 15935 北部灣

Beijing_1954_To_WGS_1984_6 15936鄂爾多斯盆地

ARCGIS中坐標轉換及地理坐標、投影坐標的定義

3.2 自定義三參數或七參數轉換

當ArcGIS軟件中不能自動實現投影間直接轉換時,需要自定義七參數或三參數實現投影轉換,以七參數為例,轉換方法如下:

3.2.1 自定義七參數地理轉換

在ArcToolbox中選擇Create CustomGeographic Transformation工具, 在彈出的窗口中,輸入一個轉換的名字,如wgs84ToBJ54。在定義地理轉換方法下面,在Method中選擇合適的轉換方法如COORDINATE_FRAME,然后輸入七參數,即平移參數、旋轉角度和比例因子,如圖所示:

ARCGIS中坐標轉換及地理坐標、投影坐標的定義

3.2.2 投影轉換

打開工具箱下的Projections and Transformations>Feature>Project,在彈出的窗口中輸入要轉換的數據以及Output Coordinate System,然后輸入第一步自定義的地理坐標系如wgs84ToBJ54,開始投影變換,如圖所示完成投影轉換:

ARCGIS中坐標轉換及地理坐標、投影坐標的定義

作者:趙立超 郵箱:zhaolc@lreis.ac.cn

 

投影的心得點滴

1、 在不同的坐標系下,同一點的經緯度坐標值不同
2、從54、80向wgs84轉化的參數未公開,即沒有現成的方法實現直接轉化。即:現在得到的數字地圖的坐標並非其自稱的wgs84坐標,而是原始地圖的坐標系(北京54或者西安80下的經緯度值)。
3、兩副地圖同一點的差別,實際是54和80的差別。

 

 

Google Maps 地圖投影全解析
Google Maps、Virtual Earth 等網絡地理所使用的地圖投影,常被稱作 Web
Mercator 或 Spherical Mercator,它與常規墨卡托投影的主要區別就是把地球
模擬為球體而非橢球體。建議先對地圖投影知識做一個基本的了解,《地圖投影
為什么》。
什么是墨卡托投影?
墨卡托(Mercator)投影,又名”等角正軸圓柱投影”,荷蘭地圖學家墨卡托
(Mercator)在 1569 年擬定,假設地球被圍在一個中空的圓柱 里,其赤道與圓
柱相接觸,然后再假想地球中心有一盞燈,把球面上的圖形投影到圓柱體上,再
把圓柱體展開,這就是一幅標准緯線為零度(即赤道)的”墨卡托投 影”繪制
出的世界地圖。從球到平面,肯定有個轉換公式,這里就不再羅列。
Google 們為什么選擇墨卡托投影?
墨卡托投影的”等角”特性,保證了對象的形狀的不變行,正方形的物體投影后
不會變為長方形。”等角”也保證了方向和相互位置的正確性,因此在航海和航
空中常常應用,而 Google 們在計算人們查詢地物的方向時不會出錯。
墨卡托投影的”圓柱”特性,保證了南北(緯線)和東西(經線)都是平行直線,
並且相互垂直。而且經線間隔是相同的,緯線間隔從標准緯線(此處是赤道,也
可能是其他緯線)向兩級逐漸增大。
但是,”等角”不可避免的帶來的面積的巨大變形,特別是兩極地區,明顯的如
格陵蘭島比實際面積擴大了 N 倍。不過要是去兩極地區探險或可靠的同志們,一
般有更詳細的資料,不會來查看網絡地圖的,這個不要緊。
為什么是圓形球體,而非橢球體?
這說來簡單,僅僅是由於實現的方便,和計算上的簡單,精度理論上差別 0.33%
之內,特別是比例尺越大,地物更詳細的時候,差別基本可以忽略。
Web 墨卡托投影坐標系:
以整個世界范圍,赤道作為標准緯線,本初子午線作為中央經線,兩者交點為坐
標原點,向東向北為正,向西向南為負。
X 軸:由於赤道半徑為 6378137 米,則赤道周長為 2*PI*r = 20037508.3427892,
因此 X 軸的取值范圍:[-20037508.3427892,20037508.3427892]。
Y 軸:由墨卡托投影的公式可知,同時上圖也有示意,當緯度 φ 接近兩極,即
90°時,y 值趨向於無窮。這是那些”懶惰的工程師”就把 Y 軸的取值范圍也限
定在[-20037508.3427892,20037508.3427892]之間,搞個正方形。
懶人的好處,眾所周知,事先切好靜態圖片,提高訪問效率雲雲。俺只是告訴你
為什么會是這樣子。因此在投影坐標系(米)下的范圍是:最小
(-20037508.3427892, -20037508.3427892 )到最大 (20037508.3427892,
20037508.3427892)。
對應的地理坐標系:
按道理,先講地理坐標系才是,比如球體還是橢球體是地理坐標系的事情,和墨
卡托投影本關聯不大。簡單來說,投影坐標系(PROJCS)是平面坐標系,以米 為
單位;而地理坐標系(GEOGCS)是橢球面坐標系,以經緯度為單位。具體可參考《坐
標系、坐標參照系、坐標變換、投影變換》。
經度:這邊沒問題,可取全球范圍:[-180,180]。
緯度:上面已知,緯度不可能到達 90°,懶人們為了正方形而取的
-20037508.3427892,經過反計算,可得到緯度 85.05112877980659。因此緯度
取值范圍是[-85.05112877980659,85.05112877980659]。其余的地區怎 么辦?
沒事,企鵝們不在乎。
因此,地理坐標系(經緯度)對應的范圍是:最小(-180,-85.05112877980659),
最大(180, 85.05112877980659)。至於其中的 Datum、坐標轉換等就不再多言。
相關坐標計算:
關於 Google Maps 等的組織方式——地圖瓦片金字塔,估計我在這里重復一遍這
玩意,怕也是沒人看了。盡管原理都一樣,但具體到寫不同廠商不同數據源的代
碼時,你會發 現,可縮放級別數不一樣,最小級別不一樣,編碼方式不一樣,
比如 Google 的 QRST,微軟的四叉樹,OSGeo 的 TMS 等。
然而,你或許也不必這么麻煩,因為這些算法在網絡上早已遍布朝野,你盡可從
他人博客中獲取,或是從開源軟件里學習。這本身都不是秘密,微軟自己也是公
布的。
《Tiles à la Google Maps》 用交互性地方式可得到任一 Tile 的邊界范圍,各
種流行編碼方式等。該頁面的鏈接都非常有價值,部分也是本文寫作的重要參考。
作者用 python 完成了下 列坐標之間轉換算法:經緯度(出現在 KML 中的坐標,
WMS 的 BBOX 參數等),平面坐標 XY(米,Web Mercator 投影坐標系),金字塔
的 XYZ(即 X 軸的位置,Y 軸的位置,和縮放級別 ZoomLevel),每個 Tile 的編
碼 Key 值(QRST 或 0123 等)。轉換時,還需要注意兩個概念,Ground Resolution
和 Map Scale。
Ground Resolution,地面分辨率,類似 Spatial Resolution(空間分辨率),
我們這里主要關注用象元(pixel size)表示的形式:一個像素(pixel)代表的地
面尺寸(米)。以 Virtual Earth 為例,Level 為 1 時,圖片大小為 512*512(4
個 Tile),那么赤道空間分辨率為:赤道周長/512。其他緯度的空間分辨率則
為緯度 圈長度/512,極端的北極則為 0。Level為2時,赤道的空間分辨率為 赤
道周長/1024,其他緯度為緯度圈長度 1024。很明顯,Ground Resolution 取決
於兩個參數,縮放級別Level 和緯度latitude ,Level 決定像素的多少,latitude
決定地面距離的長短。地面分辨率的公式為,單位:米/像素:
ground resolution = (cos(latitude * pi/180) * 2 * pi * 6378137 meters)
/ (256 * 2levelpixels)
Map Scale,即地圖比例尺,小學知識,圖上距離比實地距離,兩者單位一般都
是米。在 Ground Resolution 的計算中,由 Level 可得到圖片的像素大小,那么
需要把其轉換為以米為單位的距離,涉及到 DPI(dot per inch),暫時可理解
為類似的 PPI(pixelper inch),即每英寸代表多少個像素。256 * 2level / DPI
即得到相應的英寸 inch,再把英寸 inch 除以 0.0254 轉換為米。實地距離仍舊
是:cos(latitude * pi/180) * 2 * pi * 6378137 meters; 因此比例尺的公式
為,一般都化為 1:XXX,無單位:
map scale = 256 * 2level / screen dpi / 0.0254 / (cos(latitude * pi/180)
* 2 * pi * 6378137)
= 1 : (cos(latitude * pi/180) * 2 * pi * 6378137 * screen dpi) / (256 *
2level * 0.0254)
其實,Map Scale 和 Ground Resolution 存在對應關系,畢竟都和實地距離相
關聯,兩者關系:map scale = 1 : ground resolution * screen dpi / 0.0254
meters/inch
《Virtual Earth Tile System》列舉了 Virtual Earth 在赤道上,Level、像素
數、地面分辨率、地圖比例尺的對應關系,同時本文也簡單介紹了 Mercator 投
影和上述兩個概念,推薦。
此外,《Addressing Google Maps image tiles》應用程序,輸入經緯度和縮放
級別,即可縮放到相應的 Google Maps 位置,而且可以顯示出查找過程的 QRST。
JavaScript 實現的算法,也可以抓下來和《Tiles à la Google Maps》對比下,
從經緯度到到 Tile 編碼的轉換。
WKT 形式表示
Google Maps 和 Virtual Earth 等的流行程度不用多講,然而他們所使用的 Web
Mercator 或 Spherical Mercator 在很長一段時間內並沒有被 EPSG 的投影數據
庫所接納。EPSG 認為它不能算作科學意義上的投影,所以只是給了一個 EPSG:
900913 的標號(SRID),這個標號游離在 EPSG 常規標號范圍之外。(EPSG、SRID
是什么?參見《EPSG 、SRID》。)
到了2008年5月(據SharpGIS 同學), EPSG 恍然明白,不管橢球體還是球體,
其實都是對地球的模擬,只是精確程度上的差別,沒有本質上的不同。或者是不
得不接受廣泛的事實標准,接納了這個投 影,定義投影坐標系 PROJCS 的名字
為”Popular Visualisation CRS / Mercator”,SRID 為 EPSG:3785;地理坐標
系 GEOGCS 的名字為”Popular Visualisation CRS”,SRID 為”EPSG:4055″。
這些標號已經進入”正常范圍”。(PS:這個 Visualisation 是英式英語寫法?)
PROJCS 的 WKT《Well Known Text》寫法如下,GEOGCS、Datum 等的 WKT 表示參
見《Spherical/Web Mercator: EPSG code 3785》。附帶說一句,Web Mercator
在 ESRI 公司的編號(ESRI 叫它 Well Known ID?)暫時是 102113,或許偶爾用
得到。
PROJCS["Popular Visualisation CRS / Mercator",
GEOGCS["Popular Visualisation CRS",
DATUM["Popular_Visualisation_Datum",
SPHEROID["Popular Visualisation Sphere",6378137,0,
AUTHORITY["EPSG","7059"]],
TOWGS84[0,0,0,0,0,0,0],
AUTHORITY["EPSG","6055"]],
PRIMEM["Greenwich",0,
AUTHORITY["EPSG","8901"]],
UNIT["degree",0.01745329251994328,
AUTHORITY["EPSG","9122"]],
AUTHORITY["EPSG","4055"]],
UNIT["metre",1,
AUTHORITY["EPSG","9001"]],
PROJECTION["Mercator_1SP"],
PARAMETER["central_meridian",0],
PARAMETER["scale_factor",1],
PARAMETER["false_easting",0],
PARAMETER["false_northing",0],
AUTHORITY["EPSG","3785"],
AXIS["X",EAST],
AXIS["Y",NORTH]]
附記:這個問題算是老問題,費這么多時間,主要就是分享,畢竟自己還算是相
當明白。也是看見有人不懂亂說,寫篇文章糾正下。當然誰都會犯錯誤,包括我
這篇 是否 100%正確,你也可以質疑。起這個題目其實不是本意,因為它不科學,
甚至 EPSG 的 INFORMATION_SOURCE 字段寫的都是 Microsoft,只不過國內 Google
更火些,SEO 一下。
這篇文章除了參考文中所列鏈接外, Microsoft、Google、EPSG、OGC 等組織相
關的說明外,Charlie Savage、SharpGIS、Nelson John 等博客也是非常重要的
來源,在此致以謝意。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM