1. 程式人生 > >墨卡託及Web墨卡託投影

墨卡託及Web墨卡託投影

Google Maps、Virtual Earth等網路地理所使用的地圖投影,常被稱作Web Mercator或Spherical Mercator,它與常規墨卡託投影的主要區別就是把地球模擬為球體而非橢球體。建議先對地圖投影知識做一個基本的瞭解,《地圖投影為什麼》。

什麼是墨卡託投影?

墨卡託(Mercator)投影,又名“等角正軸圓柱投影”,荷蘭地圖學家墨卡託(Mercator)在1569年擬定,假設地球被圍在一箇中空的圓柱裡,其赤道與圓柱相接觸,然後再假想地球中心有一盞燈,把球面上的圖形投影到圓柱體上,再把圓柱體展開,這就是一幅標準緯線為零度(即赤道)的“墨卡託投影”繪製出的世界地圖。從球到平面,有個轉換公式,這裡就不再羅列。

Google們為什麼選擇墨卡託投影?

墨卡託投影的“等角”特性,保證了物件的形狀的不變行,正方形的物體投影后不會變為長方形。“等角”也保證了方向和相互位置的正確性,因此在航海和航空中常常應用,而Google們在計算人們查詢地物的方向時不會出錯。

墨卡託投影的“圓柱”特性,保證了南北(緯線)和東西(經線)都是平行直線,並且相互垂直。而且經線間隔是相同的,緯線間隔從標準緯線(此處是赤道,也可能是其他緯線)向兩級逐漸增大。

但是,“等角”不可避免的帶來的面積的巨大變形,特別是兩極地區,明顯的如格陵蘭島比實際面積擴大了N倍。不過要是去兩極地區探險或科考的同志們,一般有更詳細的資料,不會來檢視網路地圖的,這個不要緊。

(圖片來源,Nelson Jhon)

為什麼是圓形球體,而非橢球體?

這說來簡單,僅僅是由於實現的方便,和計算上的簡單,精度理論上差別0.33%之內,特別是比例尺越大,地物更詳細的時候,差別基本可以忽略。

Web墨卡託投影座標系

以整個世界範圍,赤道作為標準緯線,本初子午線作為中央經線,兩者交點為座標原點,向東向北為正,向西向南為負。

X軸:由於赤道半徑為6378137米,則赤道周長為2*PI*r = 2*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、座標轉換等就不再多言。

如果想知道座標怎麼計算的,請看全解析第2季《相關座標計算》;更深入的和GIS相關的第3季《WKT形式表示》。

注:除了google地圖,還有bing地圖,mapABC地圖線上地圖服務均採用了web墨卡託投影,esri的onlilne地圖也有使用此地圖投影,除了在切片時候減少圖片數量以外,還是大家為了marshup方便,均採用了web 墨卡託投影方式,但在地圖顯示上面為了大家易懂,還是轉換成了經緯度的方式顯示.