2012年5月9日 星期三

WGS84經緯度與TWD97(TM2)投影坐標轉換程式

最近處理 GIS 資料時,遇到了 WGS84 經緯度與 TWD97 投影坐標互相轉換的需求,於是在網路上找到了 程式設計 遇上 小提琴 以及 ola的家 兩個網頁,分別提供了 Python 與 C# 的原始碼。不過實際測試後卻發現經緯度轉 TWD97 有 2 公尺, TWD97 轉經緯度有 3 公厘左右的誤差值。這對精密測量來說,還是稍嫌不足。

因此,我又尋找了其他的資料,最後在中國的 代码发芽网 找到了經緯度與 UTM 互轉的程式碼,由於 UTM 以及 TWD97 都是同一種投影方式(橫麥卡托投影,Transverse Mercator Projection),只有 X 軸平移量、中央子午線以及投影尺度因子等常數的不同而已(尤瑞哲,2003)。因此我參考了 ola的家 所提供的程式框架,並將經緯度轉 TWD97 的函式重新改寫成 USGS (U.S. Geological Survey) 提供的轉換公式; TWD97 轉經緯度的轉換函式則是修正了其中一個算式。