GPX 和 KML,軌跡資料到底該用哪個
GPX 和 KML 底層都是同一種材料——一串座標——畫出來也都是地圖上的一條線,但兩者當初要解決的問題不一樣。GPX 是為了把 GPS 軌跡原封不動地在裝置和軟體之間搬來搬去,不額外添加任何東西。KML 是為了讓一張地圖在 Google Earth 裡呈現成想要的樣子:用哪個圖示、什麼顏色、什麼鏡頭角度。對一次記錄下來的健行來說,這個出發點上的差異,基本就決定了該放在哪一邊。
兩種格式各自是為了裝什麼
GPX 裝的是原始 GPS 資料
一條 GPX 軌跡就是一串按順序排列的點,每個點帶經緯度,通常還帶海拔和時間戳。格式裡沒有任何欄位描述這條線在螢幕上該長什麼樣——沒有顏色,沒有圖示,沒有鏡頭位置。它故意保持精簡,這也是 GPS 裝置、手錶、手機和各種地圖平台都能用同一種方式讀它的原因。
KML 裝的是呈現方式
KML(Keyhole Markup Language)來自 Google Earth,設計的重點不只是點在哪裡,更是地圖該怎麼呈現:可以給線設定顏色和粗細,給標記點放自訂圖示,把內容分好資料夾,甚至能設定一段導覽用的鏡頭視角。這就是這個格式存在的意義——它描述的是一個場景,而不只是一條軌跡。
海拔為什麼會在 KML 檢視器裡悄悄消失
KML 的標記點跟 GPX 的軌跡點一樣,也能給每個點存一個海拔數值。兩者的差別在於預設怎麼處理這個數值:很多 KML 檢視器如果檔案裡沒有明確指定,會直接把路線貼在地形表面上畫出來,結果就是——即便檔案裡確實存著記錄下來的海拔資料,螢幕上的起伏也可能完全看不出來。GPX 沒有這類需要指定的選項,軌跡點裡的海拔值讀出來就是海拔本身。
這算不上誰的錯,只是說明 KML 這個格式本來就是圍繞「地圖好不好看」來設計的——一個不影響畫面的數值,檢視器自然容易把它當成可有可無的東西。
為什麼這對一次健行很關鍵
Strava、Garmin Connect、Komoot、Gaia GPS、CalTopo 這類健行和騎行平台,從一開始就是圍著 GPX 搭起來的,因為它們真正需要的是原始軌跡:距離、配速、爬升,還有能拿來回放、跟同一條路線的另一天做比對的路線,這些都跟線是什麼顏色沒關係。把 KML 檔案丟給這些平台,運氣好也就是勉強匯進去,大多數乾脆就只認 GPX。
KML 真正派上用場的是記錄結束之後的那一步:把路線做成好看的東西給別人看——嵌在遊記網頁上的彩色地圖、給營地點標一個專屬圖釘、在 Google Earth 裡做一段帶鏡頭運動的導覽——這正是 KML 這個格式當初被設計出來要做的事。
兩者對照
- 用途:GPX 在裝置和軟體之間原樣搬運 GPS 資料。KML 控制地圖的呈現方式。
- 出身:GPX 是 2002 年發布的開放格式,不屬於任何一家公司。KML 來自 Google Earth,是 Google 自家的地圖格式。
- 樣式:GPX 沒有樣式這個概念。KML 能設定線條顏色、圖示、資料夾分組,還有鏡頭視角。
- 海拔:兩種格式都能給每個點存一個海拔數值,但 KML 檢視器在沒有明確指定的情況下,可能會把線貼到地形表面上畫;GPX 沒有對應的這類設定。
- 相容性:GPX 幾乎被所有健行、騎行和地圖平台原生支援。KML 被 Google Earth 和 Google 我的地圖原生支援,其他地方的支援面窄得多。
兩種格式互相轉換
把 GPX 軌跡轉成 KML,為的是在 Google Earth 裡顯示得更好看,或者要用在 Google 我的地圖上,這是常見也說得通的一步——路線的形狀轉換後基本保持不變,GPS Visualizer、GPSBabel 這類免費工具一次操作就能完成。反過來,把帶樣式的 KML 轉回單純的 GPX,實際用處通常不大:那些要 GPX 的路線平台只需要座標本身,KML 加上去的樣式資訊一旦落回一條單純的軌跡,也就沒有地方可以掛了。
TrailCam 匯出的是什麼
TrailCam 用 GPS 記錄路線,單條路線或整段歷史都能匯出成 GPX 1.1,也能匯出 CSV 彙總。GPX 這個格式跟一次記錄下來的健行本身對得上——距離、海拔、時間資訊都原樣留著的一條軌跡——而 Strava、Garmin Connect、Komoot 都能直接讀取這個格式,中間不用轉換這一步。匯出是可選的 TrailCam Pro 功能,App 本身免費下載。
常見問題
- KML 和 GPX 是同一回事嗎?
- 不是。兩者都描述座標,但 GPX 是為了把原始 GPS 軌跡資料在裝置和軟體之間搬運,KML 是為了控制地圖的呈現方式——顏色、圖示、鏡頭視角。兩者要解決的問題本來就不一樣。
- KML 檔案能匯入 Strava 或 Garmin Connect 嗎?
- 一般不會像 GPX 那樣順利。健行和騎行平台都是圍著 GPX 設計的,為 Google Earth 做的 KML 檔案通常得先轉成 GPX,如果這個檔案本來就是為了樣式而做的,轉換過程中還可能丟掉那部分意義。
- KML 檔案會保留健行記錄的海拔資料嗎?
- 數值本身可以存下來,但很多 KML 檢視器預設會不管這個數值,直接把線貼在地形表面上畫。所以即便檔案裡確實存著海拔數字,螢幕上也可能完全看不出記錄下來的起伏。
- TrailCam 能匯出 KML 嗎?
- 不能。TrailCam 匯出的是 GPX 1.1 或 CSV 彙總,這正是健行和地圖平台預期的格式。如果某個特定用途——比如 Google 我的地圖——需要 KML,可以之後再從 GPX 轉換過去。
記錄你自己的軌跡
TrailCam 是一款 iPhone 上的 GPS 軌跡記錄 App,會把沿途拍下的影片、照片與語音釘在你拍它的那個位置,並支援匯出成 GPX 1.1 或 CSV。免費下載。