GeoJSON をシェープファイル(SHP)に変換
この変換ツールは、GeoJSON ファイルを .prj と .cpg 付きのシェープファイル一式に変換し、ArcGIS Pro、QGIS、AutoCAD Map 3D で使えるようにします。UTM ゾーンなどへの座標変換も可能です。変換はブラウザー内で行われ、アップロードされません。混在するジオメトリは別々のシェープファイルになり、プロパティ名は10文字に短縮され、GeometryCollection や null のジオメトリは除外されます。
うまく変換できないファイルがありましたか? [email protected] までメールでお知らせください。小さなサンプルファイルを添えていただけると、修正しやすくなります。
要点
- 入力: GeoJSON (.geojson)。出力: Shapefile (.shp)。
- ファイルはアップロードされません。処理はお使いのブラウザー内、ご自身の端末で行われます。
- ファイルサイズ: 固定の上限はありません。非常に大きなファイルは端末のメモリーによって制限されます。
- 最新のブラウザー(Chrome、Edge、Firefox、Safari)が必要です。パソコン、タブレット、スマートフォンで使え、インストールは不要です。
- 無料、登録不要です。
GeoJSON をシェープファイルに変換する理由
GeoJSON はウェブ地図、API、geojson.io、JavaScript のコードから出力されますが、デスクトップ GIS の作業、官公庁、多くの取引先では今も Esri のシェープファイルが求められます。この変換ツールは、ArcGIS Pro、QGIS、AutoCAD Map 3D にそのまま追加できるシェープファイル一式を書き出します。1ファイルにつきジオメトリの種類は1つ、フィールド名は10文字まで、座標系を示す .prj ファイル、属性テーブルの文字コードといった、この形式でよく問題になる点にも対応しています。変換の際に UTM ゾーンや州平面直角座標系などに座標変換することもでき、メートルやフィートで測れるシェープファイルがすぐに得られます。処理はすべて GDAL を使ってブラウザー内で行われます。
GeoJSON をシェープファイルに変換する方法
- .geojson または .json ファイルをボックスにドロップするか、クリックして選択します。
- 必要に応じて「出力の座標系」に、UTM ゾーン 18N の EPSG:32618 などを入力します。
- 「シェープファイルに変換」をクリックし、シェープファイルの構成ファイルを含む .zip をダウンロードします。
変換で変わること
長いプロパティ名は短縮される
GeoJSON のプロパティ名はいくらでも長くできますが、シェープファイルの .dbf テーブルでは10文字までです。GDAL は長い名前を切り詰めつつ重複しないようにするため、description_long は descriptio に、population_2020 は population に、population_2021 は populati_1 になります。受け取る人にとって列名が重要な場合は、変換前にプロパティ名を変更してください。
混在するジオメトリは複数のシェープファイルになる
1つの GeoJSON ファイルにはポイント、ライン、ポリゴンを混在させられますが、シェープファイルではできません。parks_points.shp、parks_lines.shp、parks_polygons.shp のように種類ごとに1つのシェープファイルが作られ、1つの .zip にまとめられます。マルチパートのフィーチャーはそれぞれの種類に入ります。ジオメトリが GeometryCollection または null のフィーチャーはこれらのどのファイルにも当てはまらないため除外され、変換後のメッセージで件数が表示されます。
入れ子の値、true/false、日付
.dbf テーブルに入るのはテキスト、数値、日付などの平坦な値だけです。入れ子のオブジェクトは JSON テキストとして、単純なリストは (2:a,b)(値が2つという意味)のようなテキストとして書き出されます。true と false は 1 と 0 になり、2024-05-01 のような日付だけの値は本物の日付フィールドになります。.dbf の日付フィールドには時刻を保存できないため、時刻付きの日付はテキストのまま残ります。254文字を超えるテキストは切り捨てられます。
座標系と .prj ファイル
標準的な GeoJSON は WGS84 の経度・緯度なので、初期設定ではシェープファイルも WGS84(EPSG:4326)で、対応する .prj 付きで書き出されます。座標をメートルやフィート単位にしたい場合は、投影座標系を入力してください。「crs」メンバーで別の座標系を宣言している古い GeoJSON ファイルはその座標系で読み込まれ、別の座標系を選ばない限りシェープファイルもその座標系のままです。
特殊文字
属性のテキストは UTF-8 で書き出され、それを示す .cpg ファイルを ArcGIS と QGIS のどちらも読み込みます。ü、é、ñ などの文字を含む名前も正しく表示されます。.cpg ファイルを無視する古いソフトでは、正しく表示されないことがあります。
ファイル形式について
GeoJSON
GeoJSON は地理的なフィーチャーを表すプレーンテキストの JSON 形式で、2016 年に RFC 7946 として標準化されました。 Leaflet、MapLibre、Mapbox などのウェブ地図や、多くの API が標準で使う形式です。
- 座標は WGS84 の経度、緯度の順です。
- ポイント、ライン、ポリゴンを1つのファイルに混在させることができます。
- プロパティには任意の JSON 値を使え、フィールド名の長さに制限はありません。
Shapefile
Esri シェープファイルは、GIS で最も広く使われているベクター形式です。「シェープファイル」は実際には同じ名前のファイルの集まりで、 .shp にジオメトリ、.shx にインデックス、.dbf に属性テーブルが入り、任意の .prj に座標系、.cpg に文字コードが入ります。
- 少なくとも .shp、.shx、.dbf が必要です。まとめて選択するか、1つの .zip にしてください。
- フィールド名は10文字まで、テキスト値は254文字までです。
- 1つのシェープファイルに入れられるジオメトリタイプは1種類だけです(ポイント、ライン、ポリゴンのいずれか)。
- .prj ファイルがないと、座標系が不明になります。
よくある質問
zip にはどのファイルが入っていますか?
データに含まれるジオメトリの種類ごとに、同じ名前の .shp、.shx、.dbf、.prj、.cpg ファイルが入っています。1つのフォルダーにまとめて保管してください。GIS ソフトには少なくとも最初の3つが必要です。
シェープファイルが1つではなく3つになったのはなぜですか?
GeoJSON にポイント、ライン、ポリゴンが混在しているためです。シェープファイルにはそのうち1種類しか入らないため、データを捨てるのではなく、種類ごとに1つのシェープファイルを書き出します。
長いフィールド名を残せますか?
シェープファイルでは残せません。10文字の制限はこの形式の仕様です。GeoPackage にはこの制限がなく、QGIS でも ArcGIS Pro でも開けるので、受け取る人が GeoPackage でもよいか確認する価値はあります。
.json ファイルも使えますか?
はい。中身が FeatureCollection、単一の Feature、ジオメトリ単体などの GeoJSON であれば使えます。
GeoJSON はアップロードされますか?
いいえ。シェープファイルはお使いのコンピューター上でブラウザーが書き出します。データが外に出ることはありません。