Google KML (.kml)
OGC 標準Keyhole Markup Language (KML) は、地理的な注釈や視覚化を表現するためのオープンなXML標準であり、元々はKeyhole Earth Viewer(Google Earth)向けに開発され、Open Geospatial Consortium(OGC)によって標準化されました。
GEOJSON を KML に変換
無料のブラウザ内 GEOJSON から KML へのコンバーター。お使いのデバイスでファイルを即座に変換します。
調査とメタデータ
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してKMLファイルを識別します:
バイトレベルのヘッダーシグネチャ (マジックバイト)
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してKMLファイルを識別します:
16進数シグネチャ(オフセット0):
3C 6B 6D 6CASCII表現: <kml
標準化: OGC KML 2.3標準
技術仕様
| コンテナアーキテクチャ | Placemark、GroundOverlay、3Dモデル、カメラ視点を定義するXMLベースの地理可視化文法 |
| 圧縮 | 非圧縮XMLテキスト(.kmzファイルではZIP圧縮) |
| バイトエンディアン | UTF-8 / Unicodeテキストストリーム |
| 色空間 | AABBGGRR形式の16進カラー文字列 |
| チャンネルと構造 | Placemark、パス、多角形、3D建物モデル、写真オーバーレイ、ツアー用カメラパス |
| 最大寸法 | WGS 84座標:経度、緯度、高度(海抜メートル) |
| 透過性 | AABBGGRRカラー文字列とPNGオーバーレイでアルファ透明度に対応 |
| ストリーミングとプログレッシブ | NetworkLinksにより、リモート地理空間サーバーから動的なストリーミング更新を取得可能 |
技術比較表:KMLと競合製品
| 技術属性 | KML (現在) | GEOJSON | GPX | KMZ |
|---|---|---|---|---|
| 3Dカメラとツアー | 完全なカメラの傾き、方位、およびフライスルー・ツアー | なし(フラットなジオメトリプロパティ) | 高度の追跡 | 完全なカメラの傾きとフライスルー・ツアー |
| パッケージング形式 | プレーンテキストXMLドキュメント | プレーンテキストJSONドキュメント | プレーンテキストXMLドキュメント | doc.kmlを含むZIPアーカイブ |
| カラーフォーマット | AABBGGRR (アルファ・青・緑・赤) | CSS / 16進数標準 | なし | AABBGGRR |
| 主な宛先 | Google Earth & 3D GIS | Webマップ (Mapbox, Leaflet) | Garmin & GPSフィットネス追跡 | Google Earthスタンドアロンアーカイブ |
一般的な破損モードと16進数リカバリガイド
Google Earthのエラー:'Parse error at line X: mismatched tag'。
根本原因: 閉じられていないXMLタグ、またはバルーン説明のHTML内でのエスケープされていないアンパサンド。
復旧: File2File.app KML修復を使用して、XML構文を修復し、説明を <![CDATA[...]]> で囲みます。
セキュリティ分析とパーサー攻撃ベクトル
KMLファイルは、XXE、SSRF、またはクロスサイトスクリプティング(XSS)を引き起こす可能性のあるNetworkLinksおよびHTML説明バルーンをサポートしています。
既知の攻撃ベクター
- 内部イントラネットのエンドポイントをポーリングする悪意のある <NetworkLink> タグを介したサーバーサイドリクエストフォージェリ(SSRF)。
- デスクトップまたはWebのEarthバルーン内で実行される <description> タグ内のサニタイズされていないHTMLを介したXSSインジェクション。
- 自動化されたKML処理中のXML外部実体(XXE)インジェクション。
防御的ベストプラクティス: 外部ネットワークのフェッチを無効にし、DOMPurifyでバルーンのHTMLコンテンツをサニタイズします。
歴史的背景とマイルストーン
主なメリット
- 地球を3Dで詳細に可視化します。地点だけでなく、3Dカメラの角度、方位、傾き、高度、空中移動ツアーも定義できます。
- KML の対応状況はアプリによって異なり、デスクトップ GIS や地図ツールで利用できる機能も異なります。
- NetworkLink はリンク先の KML リソースを取得できます。更新動作はドキュメントの設定とビューアーによって異なります。
技術的な制限とデメリット
- 冗長なXML構文により、GeoJSONのようなコンパクトなフォーマットよりもファイルサイズが大きくなります。
- 色は、標準のRGBAではなく、型破りなAABBGGRR(Alpha-Blue-Green-Red)の16進数の順序を使用します。
- 複雑な3D機能(ツアー、モデル)は、軽量なWebマッピングプラットフォームではほとんどサポートされていません。
興味深い技術トリビア
- Keyhole Inc.は、冷戦時代に米国が打ち上げた歴史的なKH(Keyhole)偵察衛星にちなんで名付けられました。
- KMLの色は一般的なRGBAとは逆順のAABBGGRRで記述します。先頭の2文字がAlphaで、続いてBlue、Green、Redの順です。
- KMZ アーカイブには少なくとも 1 つの KML ファイルが含まれ、関連ファイルも格納できます。主ファイルの慣例的な名前は doc.kml ですが、別の名前も使用できます。
よくある技術的な質問
KMLとKMZの違いは何ですか?
KMLはプレーンテキストのXMLファイルです。KMZは、KMLファイルに加え、カスタムマップアイコン、テクスチャ、3Dオーバーレイ画像などを一緒に格納した圧縮ZIPファイルです。
KMLをGeoJSONに変換するにはどうすればよいですか?
ブラウザから直接File2File.appを使用して、1回クリックするだけでGoogle EarthのKMLファイルをWebマッピング用のクリーンなGeoJSONに変換できます。
KMLファイルをGoogleマップで開くことはできますか?
はい!Googleマップで「保存済み」>「マップ」>「地図を作成」(Googleマイマップ)の順に移動し、「インポート」をクリックしてKMLファイルをアップロードします。
関連するKML変換ペア
GeoJSONのベクターデータをGoogle KMLに変換すると、軽量なJSON座標配列がGoogle EarthやGoogle Maps向けの構造化XMLドキュメントになります。
Google KMLファイルをGeoJSONに変換することで、階層型のXML地理データを、モダンなWebマップ向けの軽量なベクターJavaScript Object Notationへと変換します。
GPSトラックGPXデータをGoogle KMLフォーマットに変換することで、生のアウトドアトラッキングログをGoogle EarthやカスタムWebマッピングアプリケーション内に即座に表示できます。
Google KML地理マークアップをGPSトラックGPXに変換することで、独自のマッピング機能を汎用的なウェイポイントおよびトラックデータに標準化します。