地圖投影以及Proj4的使用

地理坐標系統和投影坐標系統

  • 地理坐標系統(Geographic coordinate system) :
    地理坐標系統是使用經緯度來定義球面或橢球面上點的位置的參照系統,是一種球面坐標系統。最常見的位置參考坐標系統就是以經緯度來量算的球面坐標系統。地理坐標系統就是使用一個三維橢球體來模擬地球球體或橢球體。

  • 投影坐標系統
    在球面坐標上進行測量非常困難,所以地理數據通常都要投影到平面坐標上。投影坐標系統是定義在一個二維平面的坐標系統,與地理坐標系統不同的是,投影坐標系統在二維平面上有著恒定的長度、角度和面積,投影坐標系統總是基于地理坐標系統,而地理坐標系統又是基于球體或橢球體。

投影

簡單來說,Map Projection是將球體或橢球體表面的經緯度轉換成一個平面的位置的過程,即將球面坐標轉化為平面坐標的過程便稱為投影

Mercator投影

是一種正軸(投影面的軸(圓錐圓柱的軸線,平面的法線)與地球橢球體的旋轉軸重合)、等角(地面上的任意兩條直線的夾角,在經過地球投影繪制到圖紙上以后,其夾角保持不變)、圓柱投影。由荷蘭地圖學家墨卡托(G.Mercator)于1569年創立。假設一個與地軸方向一致的圓柱切或割于地球,按等角條件,將經緯網投影到圓柱面上,將圓柱面展為平面后,即得到本投影。現在主流的網上地圖信息服務所采用的投影均是Mercator投影,該投影方法也適用于航空和航海領域。

proj.4

proj.4OSGeo出品的開源GIS工具,專注于地圖的投影表達以及轉換,截止到目前官方最新的發布版本是4.9.3。官方介紹:

proj.4 is a standard Unix filter function which converts geographic longitude and latitude coordinates into cartesian coordinates (and vice versa), and it is a C API for software developers to include coordinate transformation in their own software.

由于我用的是Mac Pro,蘋果用戶如果沒有安裝Proj可以使用homebrew來安裝

brew install proj

proj4官方列出了三個應用,分別是:

  • proj
    proj工具用來轉換地理坐標到投影坐標以及投影坐標到地理坐標,但是有一個前提條件是這兩個坐標系統在同一個基準面之下。
  • cs2cs
    cs2cs工具可以實現兩個坐標系統之間的互相轉換,這兩個坐標系統可以是投影坐標與地理坐標之間的轉換,也可以是基準面之間的轉換。
  • geod
    提供對大圓的常用測地計算。

命令行使用proj4

可以使用如下命令來顯示在 proj里的內置的有關地圖投影的參數

proj -l 顯示支持的投影
proj -le 顯示支持的橢球體
proj -ld 顯示支持的基準面
proj -lu 顯示支持的單位

一個典型的命令如下,詳細的參數說明請參考這里

proj +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext  +no_defs

命令行測試如下圖:


Xcode工程中使用proj4

目前CocoaPod上proj4最高的版本是4.8.0,當然你也可以集成到iOS項目中去

參考

Map Projection WiKi
WGS84、World Geodetic System
proj.4官方介紹
proj.4通用參數
地圖投影List
Proj.4庫的編譯及使用
GIS坐標轉換庫Proj.4的使用
PROJ4初探
spatialreference

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容