Google KMLからGeoJSONへのコンバーター
Google KMLファイルをGeoJSONに変換することで、階層型のXML地理データを、モダンなWebマップ向けの軽量なベクターJavaScript Object Notationへと変換します。
フォーマットの比較と技術仕様
| 仕様 | KML | GEOJSON |
|---|---|---|
| MIMEタイプ | application/vnd.google-earth.kml+xml | application/geo+json |
| タイプ | geographic XML notation | geographic vector JSON |
| 圧縮 | XML text (KMZ when ZIP compressed) | none (JSON text) |
| 標準仕様 | OGC KML 2.3 | IETF RFC 7946 |
| マジックバイトヘッダー | 3C 3F 78 6D 6C ... 3C 6B 6D 6C (<kml) | 7B 22 74 79 70 65 22 3A 20 22 ({"type": ") JSON header |
フォーマットの概要と用途
地理データは、デスクトップマッピングツールとWebアプリケーションの間で頻繁にやり取りされます。Google KMLはGoogle Earthで使用される標準フォーマットであり、XMLツリー内にポイント、ライン、ポリゴンを構造化します。MapboxやLeafletなどのモダンなWebブラウザやマッピングライブラリは、JavaScriptが使用するデータ構造とネイティブに一致するため、GeoJSONを好みます。開発者やGISアナリストは、専門的なデスクトップソフトウェアを必要とせずにWebページ上でマップオーバーレイを素早く読み込むために、KMLをGeoJSONに変換します。 Webアプリケーションは、大きなXMLドキュメントを解析するのと比較して、JSONを即座に処理します。ユーザーがWebマップを読み込む際、GeoJSONファイルはベクターレンダリングエンジンに直接取り込まれます。この変換により、実行時にXMLタグを翻訳するオーバーヘッドが解消されます。これにより、マップは正確な座標ジオメトリを維持しながら、数千のフィーチャをスムーズに表示できるようになります。
技術仕様とコーデックの内訳
Google KMLはMIMEタイプ「application/vnd.google-earth.kml+xml」を使用し、XMLテキスト構文、または圧縮時はKMZとして知られるZIPコンテナに依存します。GeoJSONはMIMEタイプ「application/geo+json」を使用し、JSONオブジェクトとして構造化された非圧縮のプレーンテキストで構成されます。KMLファイルは多くの場合、標準のXML宣言バイトで始まり、KMZアーカイブはZIPローカルファイルヘッダーバイト「50 4B 03 04」で始まります。GeoJSONファイルは、ルートのJSONオブジェクトを表すASCII文字「{」で始まります。変換プロセスでは、XMLドキュメントツリーを解析し、座標配列とメタデータタグを抽出し、座標精度を損なうことなく、RFC 7946準拠のJSONフィーチャコレクションへと書き換えます。
OSとブラウザの互換性
両方のフォーマットは、Windows、macOS、Linux、iOS、Androidを含むすべてのモダンなオペレーティングシステムで動作します。ブラウザがJSONをネイティブに解析するため、GeoJSONはChrome、Firefox、Safari、EdgeなどのすべてのモダンなWebブラウザでネイティブに実行されます。Google KMLは、サードパーティの解析ライブラリなしではWebブラウザがKMLファイルをネイティブ表示できないため、Google Earthなどの専用デスクトップソフトウェアやQGISなどの変換ツールを適切にレンダリングするために必要とします。
💡 役立つ情報
Webマップ上の空間オフセットエラーを防ぐため、変換する前にソースのKMLがWGS 84地理座標を使用していることを常に確認してください。
フォーマットの比較と技術仕様
標準的な5メガバイトのKMLファイルは、約4.2メガバイトのGeoJSONファイルに変換されます。秒速30メガビットで動作する4Gモバイルネットワークでは、このファイルのダウンロードに約1.1秒かかります。秒速150メガビットの5Gネットワークでは、転送は0.2秒で完了します。ギガビットファイバー接続では、ファイルは0.05秒未満で瞬時に転送されます。
よくある質問
品質を落とさずにGoogle KMLをGeoJSONに変換するにはどうすればよいですか?
座標データに対する変換は、数学的にロスレス(可逆)です。どちらのフォーマットも、WGS 84空間参照系を使用して地理座標を格納します。ただし、カスタムアイコンのURLや複雑なポリゴンの押し出し高さなど、KMLの特定のスタイルルールは、標準のGeoJSONに直接の同等物がない場合があり、手動での再作成が必要になることがあります。
Google KMLとGeoJSONの違いは何ですか?
Google KMLは、Earthブラウザ向けに設計されたXMLベースの言語であり、リッチなスタイリング、カメラビュー、3D要素をサポートする階層的なノード構造を備えています。GeoJSONは、JSON上に構築された軽量なフォーマットであり、Web APIやベクターグラフィックスに最適化されており、フィーチャコレクション、ジオメトリ、シンプルなプロパティを含むフラットな構造を持っています。