Google KML (.kml)
OGC 標準Keyhole Markup Language (KML) は、地理的注釈と視覚化を表現するためのオープンなXML標準であり、元々はKeyhole Earth Viewer(Google Earth)向けに開発され、オープン地理空間 consortium(OGC)によって標準化されました。
GEOJSON を KML に変換
無料のブラウザ内 GEOJSON から KML へのコンバーター。お使いのデバイスでファイルを即座に変換します。
調査とメタデータ
オペレーティングシステムやファイル解析ツールは、先頭のバイナリバイトシーケンスを検査することで KML ファイルを識別します:
バイトレベルのヘッダーシグネチャ (マジックバイト)
オペレーティングシステムやファイル解析ツールは、先頭のバイナリバイトシーケンスを検査することで KML ファイルを識別します:
16進数シグネチャ (オフセット 0):
3C 6B 6D 6CASCII表現: <kml
標準化: OGC KML 2.3 Standard
技術仕様
| コンテナアーキテクチャ | XML-based geographic visualization grammar defining Placemarks, GroundOverlays, 3D Models, and Camera perspectives |
| 圧縮 | Uncompressed XML text (compressed with ZIP as .kmz files) |
| バイトエンディアン | UTF-8 / Unicode text stream |
| 色空間 | AABBGGRR hexadecimal color strings |
| チャンネルと構造 | Placemarks, paths, polygons, 3D building models, photo overlays, and tour camera paths |
| 最大寸法 | WGS 84 coordinates: Longitude, Latitude, Altitude (in meters above sea level) |
| 透過性 | Alpha transparency supported in AABBGGRR color strings and PNG overlays |
| ストリーミングとプログレッシブ | NetworkLinks support dynamic streaming updates from remote geospatial servers |
技術比較マトリックス: 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'(行Xでパースエラー:タグが一致しません)。
根本原因: 閉じられていないXMLタグ、またはバルーン説明のHTML内でのエスケープされていないアンパサンド。
復旧: File2File KML修復を使用して、XML構文を修復し、説明を <![CDATA[...]]> で囲みます。
セキュリティ分析とパーサー攻撃ベクトル
KMLファイルは、XXE、SSRF、またはクロスサイトスクリプティング(XSS)を引き起こす可能性のあるNetworkLinksおよびHTML説明バルーンをサポートしています。
既知の攻撃ベクター
- 内部イントラネットのエンドポイントをポーリングする悪意のある <NetworkLink> タグを介したサーバーサイドリクエストフォージェリ(SSRF)。
- デスクトップまたはWebのEarthバルーン内で実行される <description> タグ内のサニタイズされていないHTMLを介したXSSインジェクション。
- 自動化されたKML処理中のXML外部実体(XXE)インジェクション。
防御的ベストプラクティス:
歴史的背景とマイルストーン
主な利点とメリット
- リッチな3D地球の視覚化:ポイントだけでなく、3Dカメラアングル、方位、傾き、高度、フライスルー・ツアーも定義します。
- Google Earth、Google Maps、ArcGIS、およびすべてのプロフェッショナルデスクトップGISソフトウェアによってネイティブサポートされています。
- NetworkLinksをサポートしており、Google Earthがライブの天気、フライト追跡、地震の更新を動的にストリーミングできるようになります。
技術的な制限とデメリット
- 冗長なXML構文により、GeoJSONのようなコンパクトなフォーマットよりもファイルサイズが大きくなります。
- 色は、標準のRGBAではなく、型破りなAABBGGRR(Alpha-Blue-Green-Red)の16進数の順序を使用します。
- 複雑な3D機能(ツアー、モデル)は、軽量なWebマッピングプラットフォームではほとんどサポートされていません。
興味深い技術トリビア
- Keyhole Inc.の名前は、冷戦時代に米国が打ち上げた歴史的なKH(Keyhole)偵察スパイ衛星にちなんで名付けられました。
- KMLでは、色の値はAABBGGRRとして逆に記述されます:最初の2文字がAlpha、次にBlue、Green、Redの順になります。
- 「.kmz」ファイルは文字通り、単一の「doc.kml」ファイルと埋め込み画像や3Dモデルを含む標準の.zipアーカイブにすぎません。
よくある技術的な質問
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に変換することで、独自のマッピング機能を汎用的なウェイポイントおよびトラックデータに標準化します。