GeoJSON 轉 KML 轉換器
將 GeoJSON 向量圖轉換為 Google KML,能把輕量級的 JSON 座標陣列轉譯成專為 Google Earth 與 Google Maps 設計的結構化 XML 文件。
格式比較與技術規格
| 規格 | GEOJSON | KML |
|---|---|---|
| MIME 類型 | application/ | application/ |
| 類型 | 地理向量 JSON | 地理 XML 標記法 |
| 壓縮 | 無(JSON 文字) | XML 文字(以 ZIP 壓縮時為 KMZ) |
| 標準規格 | IETF RFC 7946 | OGC KML 2.3 |
| 檔案簽章(magic bytes)標頭 | 7B 22 74 79 70 65 22 3A 20 22 ({"type": ") JSON header | 3C 3F 78 6D 6C ... 3C 6B 6D 6C (<kml) |
格式概述與應用
地理向量資料經常以 GeoJSON 擷取與分享,因為網頁開發人員和 JavaScript 地圖函式庫都能直接處理這種格式。然而,Google Earth 等桌面 GIS 軟體與舊版企業地球瀏覽應用程式需要 Keyhole Markup Language(金鑰孔標記語言,簡稱 KML)。轉換這些格式可讓實地研究人員和製圖師在虛擬地球儀中檢視網路擷取的邊界多邊形、無人機遙測點與市政資產路線,而無需撰寫自訂程式碼。將資料從 GeoJSON 轉換為 KML,也能銜接開源網頁 API 與面向一般使用者的地圖工具。許多城市規劃人員使用 Leaflet 或 Mapbox 函式庫收集資料,並輸出 GeoJSON 檔案。當利害關係人想在 3D 桌面環境中檢視這些圖層時,將幾何標籤、樣式屬性與中繼資料轉換為 XML 節點,可確保圖示、線條寬度與填滿顏色等視覺元素正確算繪。
技術規格與編解碼器解析
GeoJSON 使用 application/geo+json MIME 類型,在純文字 JavaScript Object Notation 中表示地理點、線與多邊形。它不包含二進位檔案簽章(magic bytes),而是依賴標準的 ASCII 或 UTF-8 括號以及"type": "FeatureCollection"等鍵值對。相對地,Google KML 使用 application/vnd.google-earth.kml+xml MIME 類型,將空間特徵結構化在 <Placemark>、<Point> 與 <Polygon> 等 XML 標籤內。雖然這兩種格式在文字層級原生都沒有使用有損壓縮,但 KML 檔案可以使用標準的 DEFLATE 壓縮打包成 KMZ 封存檔,將繁重的向量資料與本機圖片圖示綑綁在一起。
作業系統與瀏覽器相容性
這兩種格式都能在 Windows、macOS、Linux、iOS 與 Android 等現代作業系統上順利使用。現代網頁瀏覽器會使用標準 JavaScript 引擎原生解析 GeoJSON 字串;Google KML 則需要專用解析器或 Google Earth Pro 等桌面地球瀏覽軟體。行動瀏覽器若沒有輔助應用程式或伺服器端預先算繪,就無法直接顯示原始 KML 檔案。
實用資訊
當您要轉換包含數千個複雜多邊形的大型資料集時,請在匯出至 KML 之前將來源 GeoJSON 分割成較小的區域檔案,以防止消費級地圖應用程式因記憶體不足而當機。
常見問題
如何將 GeoJSON 轉換為 Google KML 而不會遺失品質?
此轉換絕對是無損的,因為兩種格式都是使用精確的數值緯度與經度值來儲存向量座標。轉譯過程會將 GeoJSON 鍵對應到對應的 KML XML 元素,而不會改變座標精度,不過如果目標軟體以不同方式讀取非標準屬性,自訂樣式屬性可能需要手動對應。
GeoJSON 與 Google KML 有什麼區別?
GeoJSON 是一種以 JSON 語法為基礎的輕量文字格式,專為網頁地圖 API 與 JavaScript 處理而設計。Google KML 則是專為 Google Earth 設計的 XML 語言,內建支援 3D 高度貼地、自訂相機視角、巢狀資料夾階層與內嵌圖示。