GeoJSON を KMZ に変換
この変換ツールは、GeoJSON を Google Earth や Google マイマップ用の KMZ(KML を doc.kml として収めた zip)に変換します。プロパティはプレイスマークのデータとして残り、名前に使うプロパティも選べます。ブラウザー内で処理され、アップロードされません。geojson.io などの色(marker-color、stroke、fill)は KML のスタイルに、入れ子の値は JSON テキストになり、ほかの座標系の GeoJSON は WGS84 に変換されます。
うまく変換できないファイルがありましたか? [email protected] までメールでお知らせください。小さなサンプルファイルを添えていただけると、修正しやすくなります。
要点
- 入力: GeoJSON (.geojson)。出力: KMZ (.kmz)。
- ファイルはアップロードされません。処理はお使いのブラウザー内、ご自身の端末で行われます。
- ファイルサイズ: 固定の上限はありません。非常に大きなファイルは端末のメモリーによって制限されます。
- 最新のブラウザー(Chrome、Edge、Firefox、Safari)が必要です。パソコン、タブレット、スマートフォンで使え、インストールは不要です。
- 無料、登録不要です。
GeoJSON を KMZ に変換する理由
ウェブ地図、API、geojson.io、スクリプトが出力するのは GeoJSON ですが、Google Earth が標準で保存し、受け取る側も期待するのは KMZ です。KMZ は KML を圧縮したもので、同じデータをテキストで持つ場合の5分の1から10分の1ほどの大きさになることがよくあります。路線網や地番のレイヤー、測量結果をメールやチャットで送ったり、ファイルサイズに上限のあるポータルにアップロードしたりするときには、この差が効いてきます。このページは、QGIS の土台でもあるオープンソースのライブラリ GDAL を使って GeoJSON から KML を書き出し、doc.kml として KMZ にまとめる処理を、ブラウザー内で直接行います。ポイント、ライン、ポリゴンは1つのファイルにまとめたままにでき、すべてのプロパティはプレイスマークのデータとして引き継がれ、Google Earth でラベルにするプロパティを選べます。
GeoJSON を KMZ に変換する方法
- .geojson または .json ファイルをボックスにドロップするか、クリックして選択します。
- 「プレイスマークの名前に使う列」でプロパティを選ぶか、「自動」のままにします。
- 「KMZ に変換」をクリックし、ファイルを Google Earth で開くか、マイマップにインポートします。
変換で変わること
KMZ と KML のどちらにするか
中身は同じで、KMZ は KML を doc.kml として収めた zip です。Google Earth、Google マイマップ、QGIS、ArcGIS はどちらも開けます。送ったりアップロードしたりするために小さいファイルが欲しいなら KMZ を、テキストエディターや圧縮されていない KML しか読めないソフトで開きたいなら KML を選んでください。その場合は GeoJSON を KML に変換するツールを使います。
geojson.io の色は KML のスタイルになる
marker-color、marker-size、stroke、stroke-width、stroke-opacity、fill、fill-opacity といったプロパティ(geojson.io や Mapbox が使う simplestyle の慣習)は、各プレイスマークの KML スタイルになります。ポイントは色付きの押しピン、ラインは色付きの線、ポリゴンは輪郭と塗りつぶしになります。指定のない値には simplestyle の既定値を使います。marker-symbol の Maki アイコンは引き継がれず、色のプロパティがない地物は Google Earth の標準の押しピン、または赤い輪郭になります。プロパティはデータフィールドとしても残ります。
名前と説明
name というプロパティは自動でプレイスマークの名前になります。ない場合は name、title、label を含むプロパティが使われ、ほかのプロパティや「名前なし」を選ぶこともできます。description というプロパティはバルーンのテキストになり、その中の HTML は Google Earth で書式付きのテキストとして表示されます。
入れ子の値
KML のデータフィールドは平坦です。API のレスポンスによくある入れ子のオブジェクトや配列は JSON テキストとして書き出され、Google Earth ではそのまま表示されます。日付と時刻は書かれているとおりに保持されます。
ほかの座標系の GeoJSON
KML は常に WGS84 の経度・緯度です。RFC 7946 より前に作られ、「crs」メンバー(各国の国家座標系など)を持つ GeoJSON は、その座標系から座標変換されます。「crs」がなく、座標が明らかにメートル単位(投影座標系の QGIS プロジェクトからの書き出しなど)のファイルは WGS84 として読まず、座標系の入力を求め、合う候補を表示します。
ファイル形式について
GeoJSON
GeoJSON は地理的なフィーチャーを表すプレーンテキストの JSON 形式で、2016 年に RFC 7946 として標準化されました。 Leaflet、MapLibre、Mapbox などのウェブ地図や、多くの API が標準で使う形式です。
- 座標は WGS84 の経度、緯度の順です。
- ポイント、ライン、ポリゴンを1つのファイルに混在させることができます。
- プロパティには任意の JSON 値を使え、フィールド名の長さに制限はありません。
KMZ
KMZ は KML ファイルを zip で圧縮した形式で、アイコンや画像が一緒に入っていることもよくあります。 Google Earth は標準で KMZ として保存するため、Google Earth からエクスポートすると多くの場合この形式になります。
- zip 内のメインファイルは、たいてい doc.kml です。
- KMZ 内の画像やアイコンは地理データではないため、GeoJSON やシェープファイルなどに変換するときは含まれません。
よくある質問
KMZ は Google マイマップで開けますか?
はい。マイマップでレイヤーを追加し、「インポート」をクリックして KMZ を選んでください。プレイスマークの名前がタイトルになり、ほかのプロパティは詳細に表示されます。
KMZ が GeoJSON よりずっと小さいのはなぜですか?
KML のテキストは非常によく圧縮できるからです。座標やプロパティ名はフィーチャーごとに繰り返し現れますが、KMZ の中の zip はその繰り返しを1回分だけ保存します。
複数の GeoJSON ファイルを1つの KMZ にまとめられますか?
このページで変換できるのは一度に1つの GeoJSON ファイルで、それが KMZ の中の1つのフォルダーになります。複数のレイヤーを1つの KMZ にまとめるには、先に QGIS で結合するか、複数の KMZ ファイルを Google Earth で一緒に開いてください。
GeoJSON はアップロードされますか?
いいえ。GDAL はお使いのブラウザー内で動き、KMZ はお使いのコンピューター上で書き出されます。サーバーには何も送られません。
KMZ を GeoJSON に戻せますか?
はい、KMZ を GeoJSON に変換するツールで戻せます。プレイスマークのデータはプロパティとして、KML のスタイルは simplestyle の色として戻ります。