Google KML (.kml)

OGC 標準

Keyhole Markup Language (KML) 是用於表達地理註記與視覺化的開放 XML 標準,最初是為 Keyhole Earth Viewer (Google Earth) 所開發,並由開放地理空間協會 (OGC) 標準化。

將 GEOJSON 轉換為 KML

免費的瀏覽器端 GEOJSON 轉 KML 轉換器。在您的裝置上即時轉換檔案。

檢查與中繼資料

作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 KML 檔案:

在這裡選擇或拖放檔案

私密 - 檔案絕不會離開您的裝置

或貼上 Ctrl+V
零網路傳輸隱私保證: 0 位元組上傳至外部伺服器。所有處理皆在本機瀏覽器沙箱中進行。

位元組層級標頭簽章(檔案簽章)

作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 KML 檔案:

十六進位簽章(偏移量 0):

3C 6B 6D 6C

ASCII 表示法: <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 (目前)GEOJSONGPXKMZ
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 內容。

歷史起源與里程碑

2008開放地理空間協會 (OGC) 採納 KML 2.2 作為官方國際地理空間標準。
2005Google 收購 Keyhole Inc.,將 Keyhole Earth Viewer 更名為 Google Earth,並在全球推廣 KML。
2001Keyhole Inc. 建立 KML 以註記 3D 衛星空照圖。

主要優勢與優點

  • 豐富的 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 檔案。