TrailCam

指南

GPX 檔案裡的 extensions(擴充)元素是什麼?

extensions 是 GPX 檔案裡的一個可選區塊,可以掛在某個軌跡點上,也可以掛在整條路線或整份檔案上,專門用來放某個特定裝置或軟體想額外記下來、但 GPX 規範本身沒有替它留位置的東西。規範只規定「這裡可以有個容器」,容器裡究竟裝什麼,完全由寫出這份檔案的那個程式自己決定——這也是為什麼同一份 GPX 檔案一旦離開寫出它的那個 App,extensions 部分的表現會和檔案其他部分完全不一樣。

先說結論

GPX 1.1 替軌跡點定死了一份公開的欄位清單:經緯度、海拔、時間戳記,再加上名稱、定位類型之類的少數幾項。這份清單是故意鎖死的——一個要在許多不同軟體之間流通的格式,必須讓所有讀它的程式對同一個欄位的含義有一致的理解,才談得上真正通用。extensions 是規範裡唯一故意留著開口的地方:一個帶標籤的容器,裝置或 App 不用等格式的維護者先幫它加一個正式欄位,就能把自己想要的額外資料塞進去。

標準欄位裝不下的東西

軌跡點的基本欄位管的是你在哪裡、多高、什麼時候——這是幾乎所有 GPS 用途都需要的三樣東西,也是 GPX 從最初公開就帶著的三樣東西。除此之外,不少硬體和軟體還想在同一個點上多記一點別的:某個特定裝置內建感測器讀到的數值、某個 App 用來替不同定位打分、判斷可信度用的內部標記,或是只有寫出這份檔案的程式自己才認得的一組編號。這些東西在規範裡都沒有正式位置,因為規範一旦定型,不可能每次有哪家廠商想多記一樣東西就跟著加一個新欄位。

裡面實際裝的是什麼

實際情況是,extensions 區塊裡裝的,是寫出這份檔案的軟體自己覺得值得留下來的東西。一台具備氣象觀測功能的戶外裝置,可能會在某個點上附一個環境讀數。某個 App 可能會替點標上一個內部的精確度標記,用來在自己的地圖上畫出不同的信賴度顏色。一個允許把路線重新上傳的網站,可能會埋一組只有它自己用得到的參考編號,方便下次收到同一份檔案時比對帳號。這些都不是 GPX 的正式欄位,各自活在發明它的那一方自己的命名空間裡,掛在軌跡點上,而不是內建進格式本身。

為什麼 extensions 換個 App 就不太經得起折騰

這是最容易讓人摸不著頭緒的地方。一個 GPX 讀取程式,只有義務理解規範裡的基本欄位;至於用它不認識的命名空間寫的 extensions 內容,它完全可以直接跳過不管。這不算接收方出了問題——遇到不認識的 extensions 就跳過去,本來就是一個守規矩的 GPX 讀取程式該做的事,這樣才能保證某一家的私有附加內容,不會拖累另一個完全不相關的程式去讀大家都認的經緯度、海拔和時間。實際發生的事就是:extensions 裡的一個數值,在寫出它的那個 App 裡看起來好好的,換一個地方打開同一份檔案,它就悄悄不見了,而檔案本身其實完全沒壞。

這也代表,extensions 不是放「換個工具也要留住」的資料的好地方。如果一個數值重要到你希望它在 Strava、Garmin Connect、Komoot 和試算表軟體裡看起來都一樣,它就該放進這幾家都已經認可的欄位裡,而不是一個只有寫出它的那個 App 才保證能正確讀回來的容器裡。

TrailCam 在這裡做了什麼

從 TrailCam 匯出的路線是一份普普通通的 GPX 1.1 檔案:軌跡點上帶著位置、海拔和時間,都是所有讀取程式早就認得的欄位,沒有附帶一個只有 TrailCam 自己才能正確讀回來的私有 extensions 區塊。這是有意為之的取捨——不附加任何別的 App 不一定認識、也可能被悄悄丟掉的專有資料,這份檔案不管拿到哪裡,表現都是一樣的。GPX 匯出是可選的 TrailCam Pro 裡的功能,App 本身免費下載。

常見問題

是不是每份 GPX 檔案都帶 extensions?
不是,它完全是可選的。一份只需要位置、海拔和時間的普通軌跡匯出檔,本來就沒有理由帶上它。
把 GPX 檔案裡的 extensions 區塊刪掉安全嗎?
對軌跡本身沒影響。位置、海拔和時間各自是獨立的欄位,刪掉 extensions 區塊不會動到它們,丟掉的只是那個區塊裡存的 App 或裝置自己的資料。
為什麼一個數值在這個 App 裡看得到,換一個 App 打開同一份檔案卻不見了?
很可能它本來就存在那個 App 自己命名空間下的 extensions 裡。讀取的一方對看不懂的資料可以直接跳過,不用去猜它的意思,所以只存在 extensions 裡的東西,就會出現在這個地方看得見、到另一個地方卻看不見的情況。

記錄你自己的軌跡

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

在 App Store 下載