2007/08/04

[軟件放送] TWD67/97坐標轉換器(含台電坐標)

拜軟硬體進步之賜,現在拿個手持式GPS導航
是相當稀鬆平常的事,不過還是有所不足
所以小弟利用時間寫了這隻程式
至於原因,看倌們繼續往下看便知分曉。

相關討論同步發表於

現代台灣地圖只能出現下列座標:
1. TWD67
經緯度 longitude/latitude
二度分帶 2-degree transverse Mercator
2. TWD97/WGS84
經緯度 longitude/latitude
二度分帶 2-degree transverse Mercator

理想狀況是:圖資內含標示4種坐標,以便使用
現實情況是:大多數只標示1、2種,甚至完全沒有。

名詞解釋:
■ TWD67TWD97是2種不同的橢球,具有不同的幾何因子
所以在真實世界中的同一地點,會因為選用來標示的橢球不同
而具有不同的經緯度、坐標。

■ 2度分帶是台灣地區使用的坐標投影方式之一
將橢球坐標(經緯度)利用橫麥卡托投影投影到一平面上
得到平面坐標 N (North)、E (East) (或 Y、X)。

所以當使用導航軟體內建以外的圖資來導航的時候
必須先確認2者的坐標系統是否一致
如果一致,當很輕鬆地把坐標輸進去就可以了
若不一致,得先把該地點的坐標換算到跟導航軟體相同的系統才行。

■ 導航軟體 PAPAGO 使用2種坐標格式
1、TWD97(WGS84) 經緯度(度、度分秒)
2、TWD67 2度分帶坐標 Y、X(N、E)

■ 手持式GPS裝置回傳之經緯度為 WGS84 經緯度

 本程式可以在 TWD67、TWD97 2橢球上進行下列計算
目前僅支援台灣地區,澎湖地區因中央經線不同,將在下一版本支援(已支援)

1、地圖投影
經緯度 <---> 2度分帶投影坐標
即 TWD67 經緯度 <--> TWD67 平面坐標
TWD97 經緯度 <--> TWD67 平面坐標

2、Datum 轉換 ~ 不同橢球間的轉換
TWD67經緯度 <---> TWD97經緯度
不過台灣地區只使用一組轉換參數處理,可能有5~15m的誤差
高山地區應該會比較明顯。

3、TWD67 平面坐標<---> TWD97 平面坐標作法
TWD67平面坐標<--->TWD67經緯度<--->TWD97經緯度<--->TWD97平面坐標

4、台電電力坐標系統 ~ 窮人的 GPS
很多地方不一定收得到 GPS,不過很多地方都有電線桿、變電箱
台電公司將 TWD672度分帶坐標 使用了一套編碼來標示電桿、變電箱的位置
(詳細作法請參考 積丹尼網站、上河文化)

程式計算結果:

分頁1、經緯度
■ 輸入之經緯度為TWD97經緯度--->TWD97 TM2
■ 輸入之經緯度為TWD67經緯度--->TWD67 TM2
■ 輸入之經緯度為TWD97經緯度--->TWD67經緯度--->TWD67 TM2
■ 輸入之經緯度為TWD97經緯度--->TWD67經緯度--->TWD67 TM2

分頁2、X、Y坐標
■ 輸入坐標為TWD97 TM2--->TWD97經緯度--->TWD67經緯度--->TWD67 TM2
■ 輸入坐標為TWD67 TM2--->TWD67經緯度--->TWD97經緯度--->TWD97 TM2

分頁3、電力坐標系
■ 輸入台電電線桿、變電箱編號--->TWD67 TM2--->TWD67經緯度--->TWD97經緯度--->TWD97 TM2

各個分頁、滑鼠移至計算結果畫面上點擊2下,可以從 Google Map 上瀏覽TWD97地點
(輸入的經緯度、TM2坐標有 TWD67/97 2種可能,目前暫時不顯示TWD67地點)

2007/10 PC、PDA同步再改版
1、修正金門地區電力坐標化算
(別問我怎麼做的!這種暴力法若給老師知道,可能會把學分要回去)
2、金門地區化算結果有一定的品質之前,暫時關閉其他項目顯示

2007/09 PC、PDA同步再改版
1、支援金門地區電力坐標化算(感謝 millerliu、chiahuaw 熱情贊助)
(精度分析如第37、47帖,我怕話說得太早,還是等他們的好消息吧)
2、馬祖部份因為積丹尼先生尚未參透,暫不支援
3、至此幾何計算部份應初步完成,可陸續發展各種檔案交換格式供導航軟體匯入。

2007/09 PDA版釋出
1、支援 Windows Mobile
2、為 Native Code,目前提供 Arm(4) CPU 版本
如果有使用其他CPU的朋友請告知,再另行編譯

2007/08 小改版
1、支援澎湖地區2度分帶投影
2、增加 度分秒 顯示

以下為 2.0 版,原 1.0 版有其好用之處,保留不移除

0、轉換方式與1.0版完全相同(沒有比較準的問題)
1、支援台、澎、金門電力坐標計算
2、更新GUI,任意設定地區、角度單位
3、批次轉換、輸出檔案功能
4、支援輸出 Garmin GPS exChange Format (*.gpx)
(可在MapSource上匯入,但是如何在Garmin上使用我不會,歡迎提供教學)
5、支援輸出 PaPaGo WayPoint Format
6、Google Maps 航點顯示加強

2008/09 2.0 版第1次釋出
話說隔了快一年才更新,但穩定也是一種優點
初次完成,有錯誤歡迎提出。

未來走向:目前功能應該蠻齊全的,沒有新的功能需求下,會研究朝Web Service發展
至於PDA版就是要操作簡單,是否有必要更新?再看看。

下一版功能預計新增:
1、支援澎湖地區2度分帶投影
2、支援馬祖地區電力坐標計算
3、航點轉Google Earth (KML)格式
4、航點轉Waypoint+ Files (TXT)格式
5、加強 Google Map 顯示(加入顯示TWD67系統之地點)
6、支援 UrMap 顯示
7、PDA版本期待中


ps.參考資料
一個近距離的典範

積丹尼網站
電力座標與2度TM座標的關係
Taiwan 衛星定位系統 GPS and 座標轉換 TWD67, TWD97, WGS84 coordinate transformations

上河文化
電力坐標系統解讀
大地坐標系統與2度分帶坐標