Google KML (.kml)
OGC 標準Keyhole Markup Language (KML) 是用於表達地理註記與視覺化的開放 XML 標準,最初是為 Keyhole Earth Viewer (Google Earth) 所開發,並由開放地理空間協會 (OGC) 標準化。
將 GEOJSON 轉換為 KML
免費的瀏覽器端 GEOJSON 轉 KML 轉換器。在您的裝置上即時轉換檔案。
檢查與中繼資料
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 KML 檔案:
位元組層級標頭簽章(檔案簽章)
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 KML 檔案:
十六進位簽章(偏移量 0):
3C 6B 6D 6CASCII 表示法: <kml
標準化: OGC KML 2.3 標準
技術規格
| 容器架構 | 基於 XML 的地理視覺化語法,定義了地標(Placemarks)、地面覆蓋(GroundOverlays)、3D 模型與相機視角 |
| 壓縮 | 未壓縮的 XML 文字(使用 ZIP 壓縮為 .kmz 檔案) |
| 位元組序 | UTF-8 / Unicode 文字串流 |
| 色彩空間 | AABBGGRR 十六進位色彩字串 |
| 色版與結構 | 地標、路徑、多邊形、3D 建築模型、相片覆蓋與導覽相機路徑 |
| 最大尺寸 | WGS 84 座標:經度、緯度、高度(以海拔公尺為單位) |
| 透明度 | AABBGGRR 色彩字串與 PNG 覆蓋支援 Alpha 透明度 |
| 串流與漸進式 | NetworkLinks 支援來自遠端地理空間伺服器的動態串流更新 |
技術比較矩陣:KML 對比競爭格式
| 技術屬性 | KML (目前) | GEOJSON | GPX | KMZ |
|---|---|---|---|---|
| 3D 相機與導覽 | 完整的相機傾斜、方位與飛行導覽 | 無(平面幾何屬性) | 高度海拔追蹤 | 完整的相機傾斜與飛行導覽 |
| 封裝格式 | 純文字 XML 檔案 | 純文字 JSON 檔案 | 純文字 XML 檔案 | 包含 doc.kml 的 ZIP 壓縮檔 |
| 色彩格式 | AABBGGRR(Alpha-藍-綠-紅) | CSS / Hex 標準 | 無 | AABBGGRR |
| 主要目的地 | Google Earth 與 3D GIS | 網路地圖(Mapbox、Leaflet) | Garmin 與 GPS 健身追蹤 | Google Earth 獨立封存檔 |
常見損壞模式與十六進位修復指南
Google Earth 錯誤:「Parse error at line X: mismatched tag」。
根本原因: XML 標籤未關閉,或氣球說明 HTML 中有未跳脫的 & 符號。
修復: 使用 File2File.app KML Repair 修復 XML 語法,並將說明包覆在 <![CDATA[...]]> 中。
安全性分析與解析器攻擊向量
KML 檔案支援 NetworkLinks 與 HTML 說明氣球,可能觸發 XXE、SSRF 或跨網站指令碼(XSS)。
已知攻擊向量
- 透過惡意 <NetworkLink> 標籤輪詢內部網路端點,造成伺服器端請求偽造(SSRF)。
- 透過在桌面版或網頁版 Earth 氣球中執行的未清除 HTML 進行 XSS 隱碼攻擊。
- 在自動化 KML 處理期間的 XML 外部實體(XXE)隱碼攻擊。
防禦最佳實務: 停用外部網路擷取,並使用 DOMPurify 清除氣球 HTML 內容。
歷史起源與里程碑
主要優勢與優點
- 豐富的 3D 地球視覺化:不僅定義點,還定義了 3D 相機角度、方位角、傾斜度、高度與飛行導覽。
- KML 支援取決於應用程式;支援的功能在各個桌面 GIS 與地圖工具之間會有所不同。
- NetworkLinks 可以擷取連結的 KML 資源;重新整理行為取決於文件設定與檢視器。
技術限制與缺點
- 冗長的 XML 語法導致檔案大小比 GeoJSON 等精簡格式還要大。
- 色彩使用非傳統的 AABBGGRR 十六進位順序(Alpha-藍-綠-紅),而不是標準的 RGBA。
- 複雜的 3D 功能(導覽、模型)很少受到輕量級網路地圖平台支援。
有趣的技術冷知識
- Keyhole Inc. 是以美國在冷戰期間發射的歷史性 KH (Keyhole) 偵察間諜衛星命名的。
- 在 KML 中,色彩值的寫法順序相反,為 AABBGGRR:前兩個字元是 Alpha,接著是藍色、綠色、紅色。
- 一個 KMZ 壓縮檔包含至少一個 KML 檔案,並可能包含支援檔案。「doc.kml」是慣用的主要檔案名稱,但也允許使用其他名稱。
常見技術問題
KML 與 KMZ 有什麼區別?
KML 是純文字 XML 檔案。KMZ 是壓縮的 ZIP 檔案,其中包含 KML 檔案以及任何自訂地圖圖示、材質或 3D 覆疊圖片。
如何將 KML 轉換為 GeoJSON?
您可以直接在瀏覽器中使用 File2File.app,一鍵將 Google Earth KML 檔案轉換為適用於網頁地圖的乾淨 GeoJSON。
我可以在 Google Maps 中開啟 KML 檔案嗎?
可以!在 Google Maps 中,前往「已儲存」 - 「地圖」 - 「建立地圖」(Google My Maps),然後按一下「匯入」來上傳您的 KML 檔案。
相關的 KML 轉換對
將 GeoJSON 向量圖轉換為 Google KML,能把輕量級的 JSON 座標陣列轉譯成專為 Google Earth 與 Google Maps 設計的結構化 XML 文件。
將 Google KML 檔案轉換為 GeoJSON,可將階層式 XML 地理資料轉換為適用於現代網路地圖的輕量向量 JavaScript Object Notation。
將 GPS Track GPX 資料轉換為 Google KML 格式,讓您能快速在 Google Earth 與自訂網頁地圖應用程式中顯示原始戶外追蹤記錄。
將 Google KML 地理標記轉換為 GPS Track GPX,可將專屬的地圖功能標準化為廣泛支援的導航點與軌跡資料。