TrailCam

指南

為什麼 GPX 檔案裡沒有海拔資料?

一條在地圖上看起來完全正常的軌跡,打開之後卻找不到任何高度曲線——每個點都有經度和緯度,別的什麼都沒有。這不代表檔案壞了。海拔從一開始就不是這個格式的必填項,一份完全合法的 GPX 檔案少了它,原因其實有好幾種。

先講結論

GPX 的軌跡點只有經度和緯度是一定要有的。海拔是一個選填的附加欄位,沒有它,檔案照樣完全合法。海拔整個缺失的時候,原因幾乎都出在檔案本身之前的環節:要麼記錄的裝置當時就沒有海拔可寫,要麼後來動過這份檔案的什麼工具沒有把它保留下來。

不管是哪一種情況,地圖上的軌跡都不受影響。距離、線條的形狀、點的先後順序,全都是從經緯度算出來的,跟海拔在不在沒有關係。

海拔存在檔案的哪裡,為什麼是選填的

每個記錄下來的點都是獨立的一個軌跡點,經度和緯度是必須帶的屬性。海拔和時間戳是嵌在同一個點裡的另外兩個欄位,裝置當時有就寫上,沒有就乾脆不出現。GPX 是 2002 年為了讓不同廠牌的 GPS 裝置之間能互相交換資料而設計的格式,那時候不少接收器只回報位置,根本沒有測高度的感測器。把海拔設成選填欄位,是讓那些裝置產出的檔案依然能算作合法 GPX 檔案的唯一辦法。

如今的 iPhone 大多數時候都有東西可以往這個欄位裡寫,但這個欄位仍然是選填的,是因為格式一直沿用著當初的設計。

常見的原因

  • 記錄裝置本身沒有測高度的手段。陽春的 GPS 記錄器和一些老式接收器只回報位置,對高度什麼都不知道,海拔那一欄自然沒有東西可寫。
  • 簡化或壓縮軌跡的工具把海拔一併刪掉了。一些用來把密集軌跡精簡成較少點數的編輯工具,刪點的同時常常把海拔也一起丟掉,因為它們的目標是檔案更小,不是保留完整資訊。
  • 這份檔案本來就是「路線」而不是「軌跡」。GPX 會區分記錄你實際走過的每一個點的「軌跡」,和只列出該轉彎地點、用來規劃路線的「路線」。路線通常不帶海拔也不帶時間戳,因為這兩樣都不是路線要解決的問題。
  • 接收的服務故意丟掉了海拔。有些服務不採用檔案裡寫的高度值,而是按每個座標去查自己的地形模型。這種情況下,你看到的不是「海拔缺失」,而是「被服務端替換掉了」——有時候檔案本身也已經被重新匯出成不帶海拔的版本。

沒有海拔,實際會失去什麼

累計爬升和累計下降都是靠把海拔按順序排開、逐段加總上升和下降算出來的,沒有海拔數值,這個計算根本無從下手。沒有數值,就沒有曲線,地圖下方也沒什麼可畫的。

除此之外什麼都不受影響。距離是相鄰座標之間的水平距離,配速是這個距離除以時間,有沒有海拔都一樣算得出來。一份完全沒有海拔的 GPX 檔案,作為「去了哪、花了多久」的記錄依然完整可用。

怎麼自己確認檔案裡到底有沒有

GPX 是純文字,最快的檢查辦法就是用文字編輯器打開檔案,隨便看幾個軌跡點:如果有海拔,它會作為一個短的內嵌值,出現在同一個點裡、緊挨著時間戳的地方。如果每個點裡都找不到,那這份檔案是真的沒有海拔資料,換個地方重新匯入也不會憑空出現。反過來,一個平常會畫高度曲線的 App,對著一條明明有上下坡的軌跡卻畫出一條平的曲線,說明的是同一件事。

TrailCam 能做什麼

TrailCam 會替每一個能寫的點都寫上海拔值,因為 iPhone 可以從 GPS 取得高度,大多數機型還能從氣壓感測器取得高度。直接用 TrailCam 記錄並匯出的軌跡,整條線都帶著海拔,這也是地圖下方那條高度曲線的來源。匯出格式是 GPX 1.1,屬於可選的 TrailCam Pro 裡的功能,App 本身免費下載。

常見問題

沒有海拔資料的 GPX 檔案算無效嗎?
不算。軌跡點必須要有的只是經度和緯度。海拔和時間戳都是選填欄位,兩個都沒有,檔案依然是完全合法的 GPX 檔案。
沒有海拔會影響距離或配速嗎?
不會。這兩個數字都是從水平座標和點之間的時間間隔算出來的,跟高度無關。一份完全沒有海拔的檔案,距離和配速照樣準確。
能不能事後幫 GPX 檔案補上海拔?
有些工具可以,做法是按每個座標去數值高程模型裡查地面高度再寫進去。但這是拿一個替代值補進去,不是把你當時實際經歷的海拔找回來——當作參考曲線還算有用,跟當下氣壓計或 GPS 實測的值並不是一回事。

記錄你自己的軌跡

TrailCam 是一款 iPhone 上的 GPS 軌跡記錄 App,會把沿途拍下的影片、照片與語音釘在你拍它的那個位置,並支援匯出成 GPX 1.1 或 CSV。免費下載。

在 App Store 下載