KML を GeoPackage(GPKG)に変換

Google Earth や マイマップ の KML・KMZ ファイルを、QGIS や ArcGIS Pro 用の1つの GeoPackage(.gpkg)に変換します。KML の各フォルダーがレイヤーになり、ポイント、ライン、ポリゴンが混在するフォルダーはタイプごとのレイヤーに分かれます。ExtendedData の列は名前を省略せずにフィールドになります。処理はブラウザー内で行われ、アップロードされません。

うまく変換できないファイルがありましたか? [email protected] までメールでお知らせください。小さなサンプルファイルを添えていただけると、修正しやすくなります。

要点

KML を GeoPackage に変換する理由

Google Earth、マイマップ、多くの現地調査アプリは KML や KMZ でデータを共有しますが、KML は表示のための形式です。型付きのフィールドも空間インデックスもなく、あらゆる種類の図形が1つのファイルに混在します。QGIS や ArcGIS Pro でデータを編集、スタイル設定、分析するなら、GeoPackage に移すほうが適しています。GeoPackage は多くのレイヤーを収められる1つの SQLite ファイルで、長いフィールド名や特殊文字もそのまま保持でき、QGIS の標準形式でもあります。このページは、QGIS の土台でもあるオープンソースのライブラリ GDAL を使って KML・KMZ をブラウザー内で開き、各フォルダーをジオメトリタイプ別に分けた GeoPackage のレイヤーとして書き出します。マイマップ の列とプレイスマークの色もフィールドになります。シェープファイルと違ってフィールド名の10文字制限はなく、まとめて管理しなければならない付属ファイルもありません。KML がお使いのコンピューターの外に出ることはありません。

KML を GeoPackage に変換する方法

  1. .kml または .kmz ファイルをボックスにドロップするか、クリックして選択します。複数のファイルをまとめてドロップすることもできます。
  2. 地図でプレイスマークを確認します。必要なら UTM ゾーンなどの投影座標系を指定します。
  3. 「GeoPackage に変換」をクリックし、.gpkg を QGIS や ArcGIS Pro で開きます。

変換で変わること

フォルダーとジオメトリタイプごとに1レイヤー

KML のフォルダーにはピン、パス、ポリゴンを混在させられますが、QGIS や ArcGIS Pro でスタイルを設定したり編集したりしやすいのは、ジオメトリタイプが1つだけのレイヤーです。タイプが1つだけのフォルダーは、フォルダー名の付いた1つのレイヤーになります。タイプが混在するフォルダーは、同じ .gpkg 内の Folder_points、Folder_lines、Folder_polygons になります。分割されたレイヤーはステータス行に表示されます。

ExtendedData、説明、色はフィールドになる

マイマップ の列は名前を省略せずにテキストフィールドになり、QGIS や ArcGIS の型付き SchemaData フィールドは整数・小数の型を保ちます。ArcGIS から書き出した KML では、代わりに各説明の中にフィールド名と値の HTML の表があることがよくあります。その表の各行がそれぞれフィールドになります。各プレイスマークのアイコン、線、塗りつぶしの色は、line_width、line_opac、fill_opac とともに icon_color、line_color、fill_color(#rrggbb)のフィールドとして残り、データ定義のシンボル設定に使えます。

座標系

KML は常に WGS84 の経度・緯度なので、初期設定ではレイヤーは EPSG:4326 で保存されます。長さや面積をメートルで測りたい場合は、UTM ゾーンなどの投影座標系を選んでください。すべてのレイヤーが再投影され、GeoPackage には新しい座標系が記録されます。

トラック、高度、オーバーレイ

Google Earth の GPS トラック(gx:Track)はラインになり、高度は Z 値として保持されます。スキャンした地図など、KMZ 内の画像オーバーレイはベクターの GeoPackage には入れられないため、ワールドファイルと .prj 付きの画像として隣に書き出され、QGIS で地図上に配置されます。アイコン、ラベル、ネットワークリンクは変換されません。

ファイル形式について

KML

KML(Keyhole Markup Language)は Google Earth や Google マイマップで使われる XML 形式で、2008 年から OGC 標準にもなっています。 ジオメトリのほか、スタイル、アイコン、フォルダー、HTML の説明文も保持できます。

  • 常に WGS84 の経度・緯度で、高度は省略できます。
  • フォルダーでプレイスマークをまとめ、変換時には各フォルダーを個別のレイヤーにできます。
  • スタイル(色、線の太さ、アイコン)は KML と Google Earth に固有のものです。

GeoPackage

GeoPackage は 2014 年に策定された、SQLite をベースにした OGC のオープン標準です。QGIS の標準形式で、 複数のレイヤー、任意の座標系、長いフィールド名を1つのファイルに収められます。

  • 1つのファイルに、複数のベクターレイヤーやテーブル、ラスタータイルを入れられます。
  • シェープファイルと違い、フィールド名に10文字の制限がありません。
  • 各レイヤーの座標系をファイル内に保存するため、別の .prj は不要です。
  • シェープファイルの .shp や .dbf と違い、レイヤーごとの 2 GB のサイズ制限がありません。

よくある質問

KML はアップロードされますか?

いいえ。GDAL が WebAssembly としてブラウザー内で動作し、GeoPackage はお使いのコンピューター上で書き出されます。

ArcGIS Pro で GeoPackage を開けますか?

はい。ArcGIS Pro は GeoPackage を直接読み込んで編集できます。カタログ ウィンドウで .gpkg を追加し、レイヤーを地図にドラッグしてください。QGIS では、.gpkg をレイヤーパネルにドラッグし、必要なレイヤーを選びます。

シェープファイルではなく GeoPackage を使う理由は?

GeoPackage は5つではなく1つのファイルで、すべてのレイヤーをまとめて保持し、10文字を超えるフィールド名や254文字を超えるテキストもそのまま残せます。æ、ü、é などの文字も文字コードのファイルなしで保存できます。取引先や古いソフトでシェープファイルが必要な場合は、KML をシェープファイルに変換するツールをお使いください。

GeoPackage を KML に戻せますか?

QGIS で .gpkg を開き、Export → Save Features As で KML を選びます。ウェブ地図用に GeoPackage から GeoJSON を作るなら、GeoPackage を GeoJSON に変換するツールをお使いください。