怎麼把 GPX 檔案轉換成 KMZ
KMZ 經常跟 KML 一起出現,容易被當成同一回事,但 KMZ 本身並不是一種獨立的格式——它是把一份 KML 檔案壓縮進一個壓縮檔,壓縮檔裡還留著空間放 KML 可能引用到的圖示或圖片。把 GPX 軌跡轉成 KMZ,其實是兩個各自很小的步驟,搞清楚這一點,之後要檢查什麼就清楚了。
簡單說
最快的辦法跟轉成普通 KML 一樣:用 GPS Visualizer、gpx2kml 這類免費線上轉換工具上傳 GPX,會直接給你 KMZ;如果它問你要 KML 還是 KMZ,選 KMZ 就行。不想把自己的路線傳到別人伺服器上的話,GPSBabel 能在自己電腦上完成同樣的轉換。如果手上已經有一份之前轉好的 KML 檔案,用任何壓縮工具把它壓縮、再把副檔名改成 .kmz,就是一份 KMZ 了——KMZ 檔案的真面目,其實就是這麼簡單。
KMZ 檔案到底是什麼
把一個 .kmz 檔案解壓開,裡面是一個小資料夾:一份幾乎都叫 doc.kml 的 KML 檔案,旁邊跟著這份 KML 引用到的其他檔案——最常見的是自訂標記圖示用的小圖片,偶爾也會有綁定在地圖上某個位置的照片或疊加圖層圖片。.kmz 這個副檔名,只是在告訴 Google Earth 之類的工具「把這個壓縮檔當成一個能直接開啟的地圖檔案」,不用你自己先解壓、再手動去找裡面的 doc.kml。
為什麼有些地方要的是 KMZ 而不是普通 KML
一份沒有引用任何圖片的 KML 檔案,不管是以普通 KML 的形式傳出去,還是打包成 KMZ,內容其實完全一樣——壓縮帶來的好處基本只是下載體積小一點,因為 XML 文字本身壓縮率就不錯。KMZ 真正派上用場,是在地圖引用了外部檔案的時候:自訂圖示、內嵌的疊加圖層圖片、關聯的照片。打包成一個壓縮檔,能把這些檔案跟指向它們的 KML 綁在一起帶走,收到的就是完整的一個檔案,而不是一份 KML 加一堆指向根本沒跟過來的圖片的失效連結。這也正是 Google Earth 從「我的地點」匯出某個地點或資料夾時預設使用的儲存格式,網路上流傳的很多所謂 KML,其實骨子裡就是 KMZ。
從 GPX 轉過去,什麼會留下
轉成普通 KML 時該注意的事,這裡也一樣適用,因為打包成 KMZ 只是在同一次轉換外面又加了一層壓縮。轉完之後有兩件事值得核對一下:
- 每個點的時間戳:普通的 KML LineString 沒有存單點時間的欄位,簡單粗暴的轉換會把帶時間戳的 GPX 軌跡壓成一條完全沒有時間資訊的線。有些轉換工具會改用 gx:Track 這個擴充功能,專門保留每個點的時間——如果重播速度對你重要,值得把 KMZ 解壓開,看看 doc.kml 裡有沒有 gx:Track 這個標籤。
- 海拔:兩種格式都支援每個點帶一個數值海拔,大多數轉換工具會把它帶過去,但轉換後隨手挑幾個點比對一下,比直接假設它沒問題更穩妥。
打包壓縮這一步本身,不會額外改變什麼。把檔案壓縮起來、再解壓讀出來是無損的,所以 KMZ 這層包裝,不會在 KML 已經保留下來的內容之外再丟掉任何東西。
什麼時候值得選 KMZ 而不是普通 KML
如果路線上沒有什麼自訂樣式,就是走過的那條線,普通 KML 和 KMZ 攜帶的資訊完全一樣,而 KML 作為純文字更方便手動查看或編輯,不用先解壓。KMZ 開始有意義,是在你要做的東西帶著圖示或圖片的時候:比如給好幾個登山口各配一個不同圖釘的地圖,或者帶照片疊加層的路線。把這些一起打包成一個 KMZ,別人開啟的時候就不用把每一張引用到的圖片都放在正確的相對路徑下,地圖才能按原樣顯示。
TrailCam 在這裡能做什麼
TrailCam 用 GPS 記錄路線,單條路線或整段歷史都能匯出成 GPX 1.1,也能匯出 CSV 彙總,但 KMZ 不在匯出格式裡。如果對方明確要 KMZ,需要拿去轉換的就是這份 GPX 檔案,走上面說的那兩步就行。沿途釘在路線上的影片、照片和語音,跟其他 GPX 或 CSV 匯出一樣,都留在 TrailCam 本體裡;在 App 裡重播這條路線,才是把它們跟地圖上的這條線重新拼回一起的辦法。匯出功能是可選的 TrailCam Pro 升級裡的功能,App 本身免費下載。
常見問題
- KMZ 檔案是跟 KML 不一樣的格式嗎?
- 嚴格說不算。KMZ 檔案就是把一份 KML 檔案壓縮打包成的壓縮檔,裡面還留著放圖示或圖片的空間。解壓開來看,裡面裝的就是一份普通的 KML,通常叫 doc.kml。
- Google Earth 一定要 KMZ 檔案才能開啟嗎?
- 不一定。Google Earth 兩種都能直接開啟。KMZ 只是 Google Earth 從「我的地點」匯出地點或資料夾時預設用的儲存格式,不是必須的,只是因為這個原因才這麼常見。
- GPX 轉成 KMZ,GPS 時間戳會保留嗎?
- 要看轉換工具,不是每次都會。普通的 KML LineString 沒有存單點時間的欄位,簡單的轉換往往會把時間戳丟掉;用 gx:Track 這個擴充功能的轉換工具才會把它保留下來。這個問題出在 GPX 轉 KML 那一步,之後把 KML 打包成 KMZ 不會再改變裡面的內容。
記錄你自己的軌跡
TrailCam 是一款 iPhone 上的 GPS 軌跡記錄 App,會把沿途拍下的影片、照片與語音釘在你拍它的那個位置,並支援匯出成 GPX 1.1 或 CSV。免費下載。