PROJ.4學習——初識PROJ

PROJ.4介紹——初始認識html

前言spa

  PROJ是一個通用的座標轉換軟件,它將地理空間座標從一個座標系轉換爲另外一個座標系。這包括地圖投影和大地座標變換。命令行

  PROJ包含命令行應用程序,能夠方便地從文本文件或直接從用戶輸入轉換座標。除了命令行實用程序以外,PROJ還提供了相關的API。API容許開發人員在本身的軟件中使用PROJ的功能,而沒必要本身實現相似的功能。code

  PROJ最初是一個純粹製圖應用程序,容許用戶使用許多不一樣的製圖投影將大地座標轉換爲投影座標。多年來,隨着需求的日益增長,對數據轉移的支持也逐漸進入PROJ。今天,PROJ支持100多種不一樣的地圖投影,能夠用於除最晦澀的大地測量技術以外的全部基準面之間座標轉換。htm

快速起步blog

  1.座標系轉投影空間開發

  命令關鍵詞:projget

  座標轉換由PROJ術語中所稱的「proj-strings」來定義。proj-string描述任何轉換,無論它有多麼簡單或複雜。最簡單的狀況是大地座標的投影。本節主要介紹一些簡單的狀況,並介紹proj-string的基本結構。討論了大地變換中的複雜狀況。cmd

  proj-strings保存給定座標轉換的參數,例如:string

+proj=merc +lat_ts=56.5 +ellps=GRS80

#+proj=merc 表示:將座標系做爲墨卡託投影
#+ellps=GRS80 表示:橢球體GRS80(橢球體名稱、座標系)
#+lat_ts=56.5 有效緯度範圍Latitude of true scale

  例如,一個proj-string由一個投影說明符 +proj 、一些應用於該投影的參數以及(若是須要的話)對一個基準位移的描述組成。在上面的例子中,大地座標被轉換成投影空間,在GRS80橢球面上,用Mercator投影,其緯度爲北緯56.5度。PROJ中的每個投影均可以用一個簡寫來標識,好比上面例子中的merc。

  利用上述投影定義做爲命令行實用程序proj的參數,咱們能夠將大地座標轉換爲投影空間,在cmd中輸入:

#利用proj作轉換
#輸入類型爲 +ellps=GRS80
#由於沒有定義+lat_0 緯度起點、+lon_0  中央經線,應該默認按照 +ellps=GRS80 的默認中經線 和 默認 維度0 做爲參考點
#輸出墨卡託投影

proj +proj=merc +lat_ts=56.5 +ellps=GRS80

#在cmd中接着輸入參數

55.2 12.2

#獲得 55.2 12.2 維度、經度轉換爲米的數據

3399483.80      752085.60

#這一段命令分爲3部分
  • 一、 proj 表示:座標系投影操做
  • 二、 +proj=merc 表示:座標系按照墨卡投影
  • 三、 +lat_ts=56.5 +ellps=GRS80 表示:當前座標系爲GRS80大地座標系,有效維度範圍65.5

 

  2.座標系轉換

  命令關鍵詞:cs2cs

  PROJ還附帶了cs2cs實用程序,該實用程序用於從一個座標參考系統轉換到另外一個座標參考系統。假設咱們想要將上面的墨卡託座標轉換爲UTM,咱們能夠用cs2cs來實現:

#在cmd中輸入:
#+to表示:參數用於將源投影定義和目標投影定義分隔。

cs2cs +proj=merc +lat_ts=56.5 +ellps=GRS80 +to +proj=utm +zone=32

#再輸入

3399483.80      752085.60

#獲得

6102578.00      1921733.78 0.00

#這段命令分爲4部分
  • 一、 cs2cs 表示座標系轉座標系
  • 二、 +proj=merc +lat_ts=56.5 +ellps=GRS80 表示:源投影定義,而源投影定義的輸入參數爲merc(墨卡託)類型參數,即米
  • 三、 +to 表示:源投影定義轉目標投影定義的分隔符
  • 四、 +proj=utm +zone=32 表示:目標投影定義


#或者在cmd中輸入:

cs2cs +proj=latlon +lat_ts=56.5 +ellps=GRS80 +to +proj=utm +zone=32

#再輸入

55.2 12.2

#獲得

6102577.99      1921733.77 0.00

#這段命令分爲4部分
  • 一、 cs2cs 表示座標系轉座標系
  • 二、 +proj=latlon +lat_ts=56.5 +ellps=GRS80 表示:源投影定義,使用GRS80座標系,而源投影定義的輸入參數爲latlon(經緯度)類型參數
  • 三、 +to 表示:源投影定義轉目標投影定義的分隔符
  • 四、 +proj=utm +zone=32 表示:目標投影定義



 關於EPSG

  EPSG代碼是與座標系定義相關聯的數字代碼。如:EPSG:4326(EPSG:4326就是WGS84),你能夠理解爲EPSG文件對座標系作了相關的歸類整理。

  詳細資料能夠看:http://www.epsg.org/

#在cmd中輸入
cs2cs +init=epsg:4326 +to +init=epsg:25832
#在輸入
56 12
#能夠獲得
6230195.91      1917547.45 0.00

#若是輸入的緯度、經度爲
55.2 12.2

#獲得
6102577.99      1921733.77 0.00

#和輸入:cs2cs +proj=latlon +lat_ts=56.5 +ellps=GRS80 +to +proj=utm +zone=32 獲得的效果是同樣的
#這段代碼分爲4部分
  • cs2cs 、+to 兩部分再也不解釋
  • +init=epsg:4236 表示源投影定義
    •   能夠查詢資料看到,ESPG:4326 表示以下規則
# Hu Tzu Shan 1950
<4236> +proj=longlat +ellps=intl +towgs84=-637,-549,-203,0,0,0,0 +no_defs  <>
  • +init=espg:25832 表示目標投影定義
    •   能夠查詢資料看到,ESPG:25832 表示以下規則
# ETRS89 / UTM zone 32N
<25832> +proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
相關文章
相關標籤/搜索