GPX 檔案裡會不會記著你當時面朝哪個方向
打開一次記錄下來的健行,在地圖上看,走的方向似乎一目了然——線先往北,沿著山脊轉向東。很容易覺得,這種「方向感」應該就藏在檔案裡,以某種指南針讀數的形式掛在每個點上。可是打開 GPX 檔案去找,什麼都找不到。不管是當時面朝哪個方向,還是移動的方向,都從來不是 GPX 的一個點被設計出來要裝的東西。
先給結論
不會。GPX 軌跡的一個點,裝的是緯度、經度,通常還有海拔和時間戳記,僅此而已。沒有指南針朝向的欄位,沒有面朝方向的欄位,也沒有移動方向的欄位。看 GPX 軌跡時感覺到的「方向」,不是寫在某個點裡的東西,而是把一個點和下一個點擺在一起比較之後,才浮現出來的。
GPX 的一個點裡實際裝的是什麼
GPX 的規範把一個軌跡點能裝的東西,限定在很小、很固定的一組欄位裡:在哪、多高、什麼時候記的。地圖上要畫出一條線,本來就只需要這些——這是刻意設計成這樣的。指南針朝向,也就是那一刻手機指向哪個方向,是完全不同的一種測量,來自不同的感測器,格式裡根本沒給它留位置。路點也一樣受限,一個名字、一個位置,有時候加一段簡短說明,就是沒有方向。
方向能算出來——但沒被存下來
地圖 App 之所以能畫出一個表示前進方向的箭頭,是因為它自己算了一遍:拿一個點和它後面緊接著的一個點,算出這兩點之間的方位角。把整條軌跡這樣算一遍,就能大致重建出每一段走的是哪個方向——這完全是事後從一串有順序的座標裡推算出來的。這個計算結果從沒存進檔案,而是打開軌跡的軟體每次都要重新算一遍。
算出來的這個方位角,也不等於當時面朝的方向。往回走幾步,或者停下來看一眼旁邊的風景,連續兩點之間的方向照樣指向你實際走過的那條路,但不會告訴你那一刻手機或者你自己朝著哪邊。指南針朝向和移動方向是兩種不同的測量,只有在你筆直朝前走的時候,兩者才恰好對得上。
為什麼格式裡沒有這個欄位
GPX 存在的意義,是把一條路線以小巧、可預測的檔案形式在不同 App 之間搬來搬去,移動方向根本不需要專門占一個欄位——想要箭頭的 App,自己從檔案裡已有的座標就能算出來,再單獨存一份只會是多餘的資料,讓每個點都變得臃腫。指南針朝向的情況更不一樣,它跟路線的形狀沒關係,一直在變,還會隨手機的拿法而抖動,反映的只是那一刻的朝向,跟走的路徑長什麼樣幾乎沒有關聯。不裝這個欄位,GPX 才能專心做一件事——記錄去了哪裡,而不是變成一份手機感測器隨手回報的所有數值的流水帳。
容易搞混的地方
- 以為原始 GPX 檔案裡某處應該有個「箭頭」或「朝向」欄位——沒有這種欄位。App 顯示的箭頭是從連續幾個點算出來的,不是從某個欄位裡讀出來的。
- 把兩點之間的方向,當成那一刻手機面朝的方向——它表示的只是位置移動的方向,一旦停下來、四處張望或者往回走,這兩者就對不上了。
- 拿出單獨一個點來看,期待它自帶某種方向資訊——單獨一個點只是一個位置,方向只存在於兩個以上按順序排列的點之間的關係裡。
- 覺得指南針不準的裝置就記不出能用的軌跡——移動方向來自 GPS 位置的先後順序,跟指南針沒關係,所以軌跡本身不受影響。
TrailCam 在這裡的角色
TrailCam 用 GPS 在 iPhone 上記錄路線,把影片、照片或語音釘在你拍下它的那個軌跡點上——重播一次儲存好的記錄時,你注意到的東西和當時的位置都會一起出現,下面還跟著一條海拔曲線。把這次記錄匯出成 GPX 1.1 或 CSV——單筆記錄或整段歷史都行——帶出去的仍然是 GPX 一個點向來就有的那些座標:位置、海拔、時間,這也是它能在 Strava、Garmin Connect、Komoot 裡直接打開的原因。匯出屬於可選的 TrailCam Pro,App 本身免費下載。
常見問題
- GPX 有沒有哪個版本支援朝向或方位角欄位?
- 軌跡點的核心 GPX 規範裡沒有定義這樣的欄位。有些軟體會為了自己的目的加一些標準之外的欄位,但那已經超出了基本格式的範圍,也不保證別的 App 會讀取或保留它。
- 既然方向沒有被存下來,App 是怎麼畫出會動的箭頭的?
- 靠事後計算。拿每個點跟它前面那個點比較,算出兩者之間的方位角,每次顯示軌跡的時候都重新算一遍,而不是從檔案裡讀出來的。
- GPX 兩點之間的方向,跟指南針朝向是一回事嗎?
- 不是一回事。一個是記錄下來的兩點之間位置移動的方向,另一個是某一刻手機實際指向的方向。筆直朝前走的時候兩者大致一致,其他情況下可能完全對不上。
記錄你自己的軌跡
TrailCam 是一款 iPhone 上的 GPS 軌跡記錄 App,會把沿途拍下的影片、照片與語音釘在你拍它的那個位置,並支援匯出成 GPX 1.1 或 CSV。免費下載。