在香港不同基準和投影之間進行轉換

若然有留意香港 1:20000 地形圖,便會發現有三個座標系統同時在圖上出現:
proj1

黑字是大家比較熟悉的熟悉的經緯度,紅色的是香港 HK1980 方格網系統,而藍色而且組成地圖上格網的是通用橫墨卡托(UTM)座標,圖上的 KK 則是 MGRS 的分區。

在郊區地圖上,亦有通用橫墨卡托座標和格網,亦印有經緯度:
proj3

同一經緯度其實並不一定是指著同一點,因為它可以基於不同的基準,不同的基準對於如何描述地球為橢圓球有不同定義,例如有不同的半徑、扁率和子午線位置,所以在不同的橢圓球定義下,一地跟東經零度和赤道的夾角亦會不同。

以上兩幅地圖上印有的是 WGS84 基準,它定義的赤道半徑為 6378137 米,扁率為 1/298.257223563,它參考著特定時刻的地球觀測數據(例如某個版本的 ITRF)。這種基準正好是全球衛星定位系統(GPS)所使用,所以能夠從衛星定位儀讀出經緯度直接跟地圖對照。(其他衛星定位系統都用跟 WGS84 幾乎一樣的橢圓球定義,但可能是用了較新的 ITRF)

跟經緯度不同,通用橫墨卡托座標是一種笛卡兒投影座標,也就是將立體的橢圓球,投影到平面的地圖上,所以座標不是以角度為單位,而是以米作單位。而通用橫墨卡托座標覆蓋全球,沿經線將地球分成六十份,再以橫墨卡托方式投影到地圖上。在大比例的地圖上,它可以大致保存形狀、角度和面積。但此投影並不適用於兩極,因為會令地形有太大變形。

以上地圖所用的通用橫墨卡托座標也是以 WGS84 作基準,所以某些能輸出通用橫墨卡托座標的衛星定位儀,又或者是其他印有 WGS84 橫墨卡托座標的地圖,座標能互相直接進行對照。

由於香港橫跨了兩個投影區(49N 和 50N),所以使用時要了解是 49N 還是 50N 分區。而香港所用的另一橢圓球基準(國際海福德 1910)也可以以通用橫墨卡托進行投影,地形圖上亦有所說明,但我好像沒找到什麼應用之處。

而圖上的 KK 則是 Military grid reference system 分區,MGRS 基於 WGS84 的通用橫墨卡托投影,主要在遠足等活動上使用。

proj2

還有的是香港 HK1980 方格網系統,它並非基於 WGS84 橢圓球,而是基於國際海福德 1910,它們的半徑和扁率皆有不同。香港 HK1980 方格網系統是由本地定義和使用的地圖投影系統,覆蓋整個香港,座標不能直接套用到世界其他地方,但由於它是香港的基準,在本地測量上皆以它作標準,三角網測站和導線點便是以這種座標作紀錄,在更大比例的地圖上更易見到它的影縱,之前在 GIS 軟件試用過的香港數碼地圖也是以香港 HK1980 方格網作座標。

香港大地測量基準說明上,有以下圖表,說明 WGS84 經緯度、HK1980 經緯度、兩種通用橫墨卡托座標和 HK1980 方格網座標的關係:
proj4

在進行轉換時,我們除了可以使用這裡提供的公式,也可以使用 PROJ.4 套件內 cs2cs 這個程式進行轉換(網上版),但要注意可能出現的誤差。

我們可以到 Spatial Reference 找出各種基準所使用的參數。

WGS84 經緯度的 EPSG 編號為 4326,PROJ.4 參數為:
+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs

HK1980 經緯度的 EPSG 編號為 4611,PROJ.4 參數為:
+proj=longlat +ellps=intl +towgs84=-162.619,-276.959,-161.764,0.067753,-2.24365,-1.15883,-1.09425 +no_defs

HK1980 方格網系統的 EPSG 編號為 2326,PROJ.4 參數為:
+proj=tmerc +lat_0=22.31213333333334 +lon_0=114.1785555555556 +k=1 +x_0=836694.05 +y_0=819069.8 +ellps=intl +towgs84=-162.619,-276.959,-161.764,0.067753,-2.24365,-1.15883,-1.09425 +units=m +no_defs

WGS84 49N 橫墨卡托座標的 EPSG 編號為 32649,PROJ.4 參數為:
+proj=utm +zone=49 +ellps=WGS84 +datum=WGS84 +units=m +no_defs

WGS84 50N 橫墨卡托座標的 EPSG 編號為 32649,PROJ.4 參數為:
+proj=utm +zone=50 +ellps=WGS84 +datum=WGS84 +units=m +no_defs

HK1980 49N 橫墨卡托座標的 PROJ.4 參數為:
+proj=utm +zone=49 +ellps=intl +units=m +no_defs

HK1980 50N 橫墨卡托座標的 PROJ.4 參數為:
+proj=utm +zone=50 +ellps=intl +units=m +no_defs

例如在大帽山頂的三角網測站,它的 HK1980 方格網座標為東行 830876.893 米,北行 830087.797 米:
proj5

我們可以用以下指令,看看它轉換為 WGS84 50N 橫墨卡托座標時,跟文件上的資料有多大分別:
cs2cs +proj=tmerc +lat_0=22.31213333333334 +lon_0=114.1785555555556 +k=1 +x_0=836694.05 +y_0=819069.8 +ellps=intl +towgs84=-162.619,-276.959,-161.764,0.067753,-2.24365,-1.15883,-1.09425 +units=m +no_defs +to +proj=utm +zone=50 +ellps=WGS84 +datum=WGS84 +units=m +no_defs

輸入 830876.893 830087.797,得出結果為 203962.16 2481053.25,大致上一樣吧。

而轉換成 WGS84 經緯度可用:
cs2cs +proj=tmerc +lat_0=22.31213333333334 +lon_0=114.1785555555556 +k=1 +x_0=836694.05 +y_0=819069.8 +ellps=intl +towgs84=-162.619,-276.959,-161.764,0.067753,-2.24365,-1.15883,-1.09425 +units=m +no_defs +to +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs

同樣輸入 830876.893 830087.797,得出結果為 114d7'28.252"E 22d24'36.333"N。

WGS84 50N 橫墨卡托座標和 HK1980 50N 橫墨卡托座標之間的座標則要以以下指令,先將 WGS84 50N 橫墨卡托座標轉換為 HK1980 經緯度,再轉換成 HK1980 50N 橫墨卡托座標:
cs2cs +proj=utm +zone=50 +ellps=WGS84 +datum=WGS84 +units=m +no_defs +to +proj=longlat +ellps=intl +towgs84=-162.619,-276.959,-161.764,0.067753,-2.24365,-1.15883,-1.09425 +no_defs
cs2cs +proj=longlat +ellps=intl +towgs84=-162.619,-276.959,-161.764,0.067753,-2.24365,-1.15883,-1.09425 +no_defs +to +proj=utm +zone=50 +ellps=intl +units=m +no_defs

203962.16 2481053.25 會轉成 203700.21 2481259.62,東行減少了 261.95 米,北行則增加了 206.37 米,跟說明內的換算系數大致相同。

香港亦有一些衛星定位參考站,它們是以 WGS84 作基準,之後再轉換成 HK1980 等座標:
proj6

我們可以用以下指令,將 WGS84 經緯度轉換為 WGS84 50N 橫墨卡托座標:
cs2cs +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +to +proj=utm +zone=50 +ellps=WGS84 +units=m +no_defs

輸入 114d11'3.27018"E 22d23'42.97409"N,得出結果為 210083.99 2479294.57,也接近。

而以下指令,則將 WGS84 經緯度轉換為 HK1980 方格網座標:
cs2cs +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +to +proj=tmerc +lat_0=22.31213333333334 +lon_0=114.1785555555556 +k=1 +x_0=836694.05 +y_0=819069.8 +ellps=intl +towgs84=-162.619,-276.959,-161.764,0.067753,-2.24365,-1.15883,-1.09425 +units=m +no_defs

輸入 114d11'3.27018"E 22d23'42.97409"N,得出結果為 837026.64 828445.55,這跟文件上的數字幾接近。

註:如果兩種基準或投影都在 cs2cs 的 EPSG 資料庫內,指令可以類似這樣寫:
cs2cs +init="EPSG:4326" +to +init="EPSG:2326" -v

參考資料:
香港大地測量基準說明
香港便覽 - 地圖測繪
香港大地測量 - 產品和服務
澳門特別行政區大地基準說明
Geometric aspects of mapping
Spatial Reference
EPSG Geodetic Parameter Registry
GeoRepository
epsg.io
Wikipedia - World Geodetic System
Wikipedia - SRID
Wikipedia - Universal Transverse Mercator coordinate system
Wikipedia - Military grid reference system
Wikipedia - International Terrestrial Reference System
Wikipedia - Satellite navigation
Wikipedia - GNSS applications
常用的座標轉換筆記(TWD67, TWD97, WGS84)
The International Terrestrial Reference Frame (ITRF)
GPS Geodetic Reference System WGS 84
GDA94, ITRF & WGS84, What’s the difference?

內部連結:
從地球到地圖
有關大地測量的簡報
少量有關測量的連結
各地三角網測站等資料
【目錄】地理/地理資訊系統/空間資料庫/大地測量內部連結

本文連結