GeoJSON を GeoPackage に変換
GeoJSON ファイル(複数可)を、QGIS や ArcGIS Pro 用の1つの GeoPackage(.gpkg)に変換します。各ファイルは型付きフィールド、座標系、空間インデックスを持つレイヤーになります。処理はブラウザー内で行われ、アップロードされません。ポイント、ライン、ポリゴンの混在はタイプ別のレイヤーに分け、入れ子の値は JSON テキストにします。ほかの座標系の GeoJSON は、別の座標系を指定しない限りそのまま保持します。
うまく変換できないファイルがありましたか? [email protected] までメールでお知らせください。小さなサンプルファイルを添えていただけると、修正しやすくなります。
要点
- 入力: GeoJSON (.geojson)。出力: GeoPackage (.gpkg)。
- ファイルはアップロードされません。処理はお使いのブラウザー内、ご自身の端末で行われます。
- ファイルサイズ: 固定の上限はありません。非常に大きなファイルは端末のメモリーによって制限されます。
- 最新のブラウザー(Chrome、Edge、Firefox、Safari)が必要です。パソコン、タブレット、スマートフォンで使え、インストールは不要です。
- 無料、登録不要です。
GeoJSON を GeoPackage に変換する理由
ウェブ地図、API、geojson.io、スクリプトが出力するのは GeoJSON ですが、GIS のプロジェクトで使うには遅いプレーンテキストの形式です。空間インデックスがなく、数値もすべてテキストとして保存され、1つのファイルには1つのレイヤーしか入りません。QGIS の標準形式であり、ArcGIS Pro でも読み込みと編集ができる OGC 標準の GeoPackage は、いくつものレイヤーを本来のフィールド型とインデックス付きで1つの SQLite ファイルに収めるので、大きなレイヤーでもすばやく描画・フィルターできます。このページは、QGIS の土台でもあるオープンソースのライブラリ GDAL を使って、GeoJSON から GeoPackage をブラウザー内で直接書き出します。複数の GeoJSON ファイルをまとめてドロップすると、ファイル名の付いたレイヤーとして同じ .gpkg に入るので、データセット全体を1つのファイルにまとめて受け渡すのに便利です。
GeoJSON を GeoPackage に変換する方法
- 1つまたは複数の .geojson または .json ファイルをボックスにドロップするか、クリックして選択します。
- 地図でレイヤーを確認します。必要なら「出力の座標系」を指定します。
- 「GeoPackage に変換」をクリックし、.gpkg を QGIS や ArcGIS Pro で開きます。
変換で変わること
ポイント、ライン、ポリゴンの混在
GeoJSON の FeatureCollection にはジオメトリタイプを混在させられますが、QGIS でスタイルを設定したり編集したりしやすいのは、タイプが1つだけのレイヤーです。そのため、タイプが混在するファイルは parks_points と parks_polygons のようにタイプごとのレイヤーになり、フィールドは共通です。ラインとポリゴンはマルチパート型(MultiLineString、MultiPolygon)で保存されるので、シングルパートとマルチパートの図形が同じレイヤーに収まり、高さ(Z)も保持されます。ジオメトリコレクションとジオメトリのない地物は、捨てられずに名前の末尾が _other のレイヤーに入ります。
フィールドの型
GDAL は各プロパティの型を値から判断します。整数は整数フィールド、小数を含む数値は実数フィールド、true/false はブール型、2024-05-01 のような値は日付フィールドになります。数値とテキストが混在するプロパティはテキストフィールドになります。API のレスポンスによくある入れ子のオブジェクトや配列は JSON テキストとして保存され、QGIS ではそのまま表示されます。
座標系
RFC 7946 以降の GeoJSON は常に WGS84 の経度・緯度で、GeoPackage には EPSG:4326 が設定されます。RFC 7946 より前に作られ、「crs」メンバー(各国の国家座標系など)を持つファイルは、その座標系のままです。「crs」がなく、座標が明らかにメートル単位(投影座標系の QGIS プロジェクトからの書き出しなど)のファイルは WGS84 として読まず、座標系の入力を求め、合う候補を表示します。出力の座標系を入力すると、変換と同時にレイヤーを再投影します。
無効なジオメトリ
手で描いたデータによくある自己交差のあるポリゴンは、QGIS やデータベースで受け付けられるよう、変換中に GDAL の makevalid で修復されます。有効な図形は変更せずに書き出されます。
ファイル形式について
GeoJSON
GeoJSON は地理的なフィーチャーを表すプレーンテキストの JSON 形式で、2016 年に RFC 7946 として標準化されました。 Leaflet、MapLibre、Mapbox などのウェブ地図や、多くの API が標準で使う形式です。
- 座標は WGS84 の経度、緯度の順です。
- ポイント、ライン、ポリゴンを1つのファイルに混在させることができます。
- プロパティには任意の JSON 値を使え、フィールド名の長さに制限はありません。
GeoPackage
GeoPackage は 2014 年に策定された、SQLite をベースにした OGC のオープン標準です。QGIS の標準形式で、 複数のレイヤー、任意の座標系、長いフィールド名を1つのファイルに収められます。
- 1つのファイルに、複数のベクターレイヤーやテーブル、ラスタータイルを入れられます。
- シェープファイルと違い、フィールド名に10文字の制限がありません。
- 各レイヤーの座標系をファイル内に保存するため、別の .prj は不要です。
- シェープファイルの .shp や .dbf と違い、レイヤーごとの 2 GB のサイズ制限がありません。
よくある質問
複数の GeoJSON ファイルを1つの GeoPackage にまとめられますか?
はい。すべてのファイルをまとめて選ぶか、ドロップしてください。各ファイルが、同じ .gpkg 内でファイル名の付いた別々のレイヤーになります。
QGIS で使うのに、なぜ GeoJSON を GeoPackage に変換するのですか?
QGIS は GeoJSON を開けますが、テキストファイル全体を読み込む必要があり、空間インデックスもありません。GeoPackage はすばやく開き、安全に編集でき、フィールドの型と複数のレイヤーを1つのファイルに保持します。QGIS 自身の標準形式でもあります。
ArcGIS Pro で GeoPackage を開けますか?
はい。ArcGIS Pro は GeoPackage を直接読み込んで編集できます。カタログ ウィンドウで .gpkg を追加し、レイヤーを地図にドラッグしてください。
GeoJSON はアップロードされますか?
いいえ。GDAL が WebAssembly としてブラウザー内で動作し、GeoPackage はお使いのコンピューター上で書き出されます。
GeoPackage から元に戻せますか?
はい。GeoPackage ビューアーではレイヤーを地図と属性テーブルで確認でき、GeoPackage をシェープファイルに変換するツールでは各レイヤーをシェープファイルとして書き出せます。