GPX 與 Shapefile:軌跡資料哪個更適合健行
GPX 檔案與 Shapefile 在地圖上畫出來可能是同一條線,但它們來自完全不同的世界。GPX 就是為 GPS 軌跡設計的——一個檔案,一種格式,專門用來裝一條帶時間戳記的軌跡。Shapefile 是給任何一種地理圖形用的通用 GIS 格式,同時存在好幾個檔案裡,根本沒有「沿著一條線,時間在往前走」這種概念。對一趟健行來說,這個差別基本就定下了該用哪個。
各自是為了裝什麼而設計的
GPX 是一個檔案,為軌跡而生
GPX 是純文字的 XML,專門為 GPS 資料設計,一條軌跡就是依序排好的一串點,每個點通常都帶著緯度、經度、海拔與時間戳記。之所以是這個結構,是因為 GPX 從一開始就是為了做這件事:記錄什麼東西在什麼時候、去了哪裡。
Shapefile 是好幾個檔案,為各種 GIS 圖形而生
Shapefile 本來就不是單一檔案。這個由 Esri 推出的格式,最少也要有存圖形的 .shp、存索引的 .shx、存屬性表的 .dbf 三個檔案湊在一起,通常還會帶一個定義座標系統的 .prj。它是為了裝 GIS 系統可能用到的任何一種地理圖形而設計的——點、線,或者像地塊邊界、道路、地表覆蓋這樣的多邊形——並不是專門針對 GPS 軌跡。一個 Shapefile 一次只能裝一種圖形類型,所以一趟健行的路線和沿途的航點,沒辦法像一個 GPX 檔案那樣裝在一起,得分成兩個各自獨立的 Shapefile。
這對健行意味著什麼
Shapefile 難處理的地方是時間。GPX 的軌跡給每個點都配了各自的時間戳記,這才讓後面能算出配速與行動時間。Shapefile 的線狀圖形通常是一個要素對應屬性表裡的一列,把路線存成線狀 Shapefile,一般就只剩下整趟健行的一筆記錄,而不是每個點各自的時間——恰恰是這種逐點的時間資訊,讓配速與行動時間的計算成為可能,而它正是在這次轉換裡被丟下的東西。
海拔這塊情況稍微好一點。Shapefile 只要用支援 Z 值的圖形類型——比如 PointZ 或 PolylineZ,而不是普通的二維版本——就能在每個頂點都帶一個高度值,所以只要負責轉換的工具願意這樣寫,轉換後的路線還是能保留海拔剖面。實際會不會這樣,取決於具體軟體;不是每一次從 GPX 到 Shapefile 的轉換都預設打開這個選項。
擺在一起比較
- 結構:GPX 是一個檔案,描述一條帶時間戳記的軌跡;Shapefile 是一捆檔案,描述圖形與屬性,跟 GPS 或時間沒有特別的綁定。
- 來源:GPX 是 2002 年發布的開放格式,不屬於任何一家公司,面向的是 GPS 裝置與軟體;Shapefile 格式是 Esri 在 1990 年代初為通用 GIS 工作推出的。
- 相容性:幾乎所有 GPS、健行或地圖應用都能打開 GPX;Shapefile 是 QGIS、ArcGIS 這類 GIS 軟體的標準工作格式,在這個圈子之外的支援就窄得多。
- 適合場景:想保留時間資訊的健行記錄用 GPX;想把同一條路線拿去跟其他地理圖層一起做 GIS 分析用 Shapefile。
- 可讀性:GPX 是純文字,隨便什麼編輯器都能打開;Shapefile 的 .dbf 與 .shp 得靠專門的 GIS 或空間資料軟體才能看懂。
兩者互相轉換
從 GPX 轉成 Shapefile,對 GIS 軟體來說是件常規操作。比如 QGIS 能直接把 GPX 檔案讀成一組圖層——軌跡、航點、路線各自分開——隨便哪個圖層都能幾下點擊就匯出成 Shapefile,如果路線需要保留爬升,還能選擇把海拔寫進支援 Z 值的圖形類型裡。
反過來,從 Shapefile 轉回 GPX,也是靠同樣的 GIS 軟體反向操作,但前提是那個 Shapefile 本身裝的是來自真實軌跡的線或點圖層——像公園邊界、地塊這種為多邊形而生的 Shapefile,根本沒有路線可以轉回去。
TrailCam 匯出什麼格式
TrailCam 把記錄下來的健行匯出成 GPX 1.1 或者 CSV 彙總,不匯出 Shapefile——一趟按順序、隨著時間發生過一次的行程,跟 GPX 的形狀是對得上的,Shapefile 反而是事後想辦法把這個形狀拼回去的那一方。如果路線需要跟其他圖層一起放進 GIS 專案裡,那個 GPX 檔案就是起點,QGIS 這類 GIS 軟體可以直接從它轉換過去。匯出功能屬於可選的 TrailCam Pro,App 本身免費下載。
常見問題
- Shapefile 能保留健行裡每個點的時間戳記嗎?
- 如果路線存成線狀 Shapefile,通常不能——線狀要素一般整條軌跡只對應屬性表裡的一列,不是每個點各自的時間。想保留逐點的時間,得改成存成點狀 Shapefile,每個記錄下來的位置各占一列。
- Shapefile 能存下健行的海拔資料嗎?
- 可以,用 PolylineZ 這類支援 Z 值的圖形類型,就能在每個頂點都帶一個高度值。但這取決於轉換工具是不是這樣寫的,普通的二維 Shapefile 會把海拔整個丟掉。
- TrailCam 能直接匯出 Shapefile 嗎?
- 不能。TrailCam 匯出的是 GPX 1.1 或 CSV 彙總。如果需要 Shapefile,可以之後把這個 GPX 檔案放進 QGIS 這類 GIS 軟體裡打開,再從軌跡或航點圖層匯出。
記錄你自己的軌跡
TrailCam 是一款 iPhone 上的 GPS 軌跡記錄 App,會把沿途拍下的影片、照片與語音釘在你拍它的那個位置,並支援匯出成 GPX 1.1 或 CSV。免費下載。