怎麼給 GPX 檔案加一個路徑點
回到家,看著剛記錄的那趟健行的地圖,總有一個地方值得標出來,但軌跡本身沒有標——那道容易錯過的柵欄門,那處真的在流水的泉眼,那個路牌倒了的岔路口。軌跡已經把走過的形狀留下來了。它本來沒有的,是一種說「就是這裡,這個地方值得記住」的辦法。加上去是一次單獨的小改動,先弄清楚它到底動了什麼,再動手比較好。
一句話說完
用一個 GPX 編輯器打開檔案——GPX Studio 是個免費的、在瀏覽器裡就能用的工具——在地圖上點一下想標的位置,加一個帶名字的路徑點,儲存。檔案裡現在就同時裝著原本的軌跡和新加的路徑點。要是不介意把檔案當純文字打開,手動打一小段 <wpt> 也能得到一樣的結果,只要它放在既有的 <trk> 元素外面,而不是裡面。
為什麼軌跡本來就沒有這個
記錄好的軌跡,是走路的時候自動寫下來的一串有先後順序的點——這串點裡沒有哪一個是為了說「這一點比旁邊的點更重要」而存在的。路徑點是完全不同的一種東西:一個人特意標出來的、單獨的一個地方,帶著名字,跟任何順序都無關。這兩樣東西活在同一種檔案格式裡,但做的是不同的事,這也正是為什麼事後加一個路徑點是一次真正的編輯,而不是打開一個開關那麼簡單。
這也是為什麼標記這件事得放到後面、對著已經寫完的檔案來做,而不是在走路的當下做。正在記錄軌跡的手機,是在向 Core Location 要一連串的位置更新,來一個寫一個;它沒有辦法在幾天或幾週之後,等你決定了哪一個點值得取個名字時,再回頭從那串更新裡單獨挑出那一個點來。
用 GPX 編輯器來加
對大多數人來說,這是值得走的那條路。像 GPX Studio 這樣的工具會打開檔案、把既有的軌跡畫在地圖上,然後讓你在地圖上任意一點點一下,落一個新點,給它取名字,再把結果存回一個 GPX 檔案。因為底層的 XML 是編輯器幫你產生的,不會有標籤寫錯的風險,也不會不小心碰到軌跡本身——軌跡只是被畫出來當參考,工具並不需要你去改動它。
QGIS 這類 GIS 軟體也能做同樣的事,控制得更細,如果你已經用慣了它。但只是想給一次健行加一個路徑點,這就有點殺雞用牛刀了。
在文字編輯器裡手動加
因為 GPX 是純文字 XML,路徑點可以直接手打進去。大致是這樣,作為獨立的一個元素,而不是嵌套在軌跡裡面:
<wpt lat="46.1234" lon="7.5678"><name>泉眼,有水在流</name></wpt>
真正要緊的是緯度和經度這兩個數字——可以從離想標記的地方最近的那個軌跡點上抄,也可以從一張點一下就顯示座標的地圖上抄。<name> 是接收方的 App 通常會當作標籤顯示出來的文字。海拔可以用同樣的方式加進去,但這一項是可選的;一個只有座標和名字的路徑點,已經是完整有效的了。
這個元素放在檔案的哪個位置,是有講究的。一個帶軌跡的 GPX 檔案,結構大致是若干個各自獨立的 <wpt> 元素,接著是一個裝著記錄點的 <trk> 元素。新的路徑點應該跟既有的 <wpt> 元素放在一起(如果有的話),或者如果一個都沒有,就直接放在根節點 <gpx> 標籤下面——千萬別放進 <trk> 或 <trkseg> 裡面,那兩個地方是留給按順序記錄的點用的,一個不該出現在那裡的路徑點,會讓期望看到一條有序軌跡的讀取程式搞混。
手動編輯時,到底是什麼會把檔案弄壞
- 標籤沒閉合——寫了 <wpt ...> 卻沒寫對應的 </wpt>,或者少打了一個角括號,這就足以讓整個檔案變成不合法的 XML,而不只是新加的這個點錯了。
- 名字裡混進了 & 或 < 這類字元——XML 會把這些符號當成語法的一部分,所以像「老王 & 一家的橋」這樣的名字,得寫成「老王 & 一家的橋」,不然檔案從那個位置開始就解析不下去了。
- 不小心把新元素放進了 <trk> 或 <trkseg> 裡面——從技術上說路徑點可能還在檔案裡,但有些讀取程式只會在軌跡結構外面找 <wpt> 元素,不會把它顯示出來。
- 用文書處理軟體儲存而不是文字編輯器——智慧型引號、富文字格式,或者不是純文字的編碼,都可能被悄悄寫進一個原本應該只有純 XML 的檔案裡。
- 把緯度和經度寫反了,或者負號弄錯了——兩個看著挺像回事的數字,只要順序一反,就能把路徑點擺到完全不挨著的另一個地方去。
TrailCam 在這裡能做什麼
TrailCam 把一條路線記錄成一整條連續的軌跡,還會在你人還在外面走的時候,把一張照片、一段影片或一句語音,釘在拍下它的那個準確位置——這個關聯是當場對著正在移動的軌跡做的,而不是事後補加到檔案裡的東西。給一個已經匯出的 GPX 檔案加一個獨立的路徑點,標記一個只有回到家之後才意識到重要的地方,這種編輯更適合交給 GPX 編輯器,而不是內建在記錄功能本身裡。TrailCam 除了能匯出 GPX,也能把檔案匯回來,所以編輯好的檔案之後還能重新匯入。匯出功能是單條路線或整段歷史,格式是 GPX 1.1 或 CSV,屬於可選的 TrailCam Pro;App 本身免費下載。
常見問題
- 加一個路徑點,會改動記錄好的軌跡嗎?
- 不會。路徑點是檔案裡獨立的一個元素,跟軌跡結構沒有關係。加上它,不會動到任何一個記錄下來的點,也不會動到那條線的形狀。
- 能給同一個 GPX 檔案加不只一個路徑點嗎?
- 能。一個檔案可以在一條軌跡之外,裝下任意多個各自獨立的路徑點,所以在同一趟健行裡標出好幾個地方,只是把同樣的操作重複幾遍。
- 加路徑點需要專門的軟體嗎?
- 嚴格說不一定——GPX 是純文字,只要小心語法,用文字編輯器加一個也沒問題。用一個免費的、在瀏覽器裡跑的 GPX 編輯器,能避免打錯字把檔案弄壞,對大多數人來說更省心。
記錄你自己的軌跡
TrailCam 是一款 iPhone 上的 GPS 軌跡記錄 App,會把沿途拍下的影片、照片與語音釘在你拍它的那個位置,並支援匯出成 GPX 1.1 或 CSV。免費下載。