シェープファイルからGeoJSONファイルへ -GIS-

MAP(地図)
スポンサーリンク

.shpからGeoJSONへ

 シェープファイル .shpをJSONファイル .jsonに変換しようとしてQGISに辿り着いた。

 ogr2ogrというツールで変換できる、ということでダウンロードしてみたが、
 QGISをインストールするほうがスムーズ。ogr2ogrなど諸々一緒にインストールされる。

 ogr2ogrはOSGeo財団 Open Source Geospatial Foundation(www.osgeo.org/)の地理空間データ変換ツール GDAL/OGRの一部。
 GDAL Geospatial Data Abstraction Library(gdal.org/)がラスターフォーマットを扱うライブラリ。
 OGRがベクトルフォーマットを扱うライブラリ。
 ちなみにspatialは、「空間の」という意味。

 ogr2ogrによる変換はコマンドプロンプトから

cd\Program Files\QGIS\bin

でogr2ogrのあるフォルダへ移って

ogr2ogr -lco "ENCODING=UTF-8" -f GeoJSON c:\polbnda_jpn.json c:\polbnda_jpn.shp

といった具合。
 .shpの他、.dbfなど一通りファイルを揃えておく必要がある。
 文字コードはUTF-8で作っておかないと文字化けする。

 QGISが使えるなら、もっと簡単。
 レイヤ - 名前をつけて保存

  •  形式 --- GeoJSON
  •  パス --- ○○○.geojson
  •  エンコーディング --- UTF-8

として変換。

 JSONファイル、GeoJSONファイルはテキストファイルなので、エディタで加工することも可能(頑張れば)。

 変換後のGeoJSONファイルは、シェープファイル .shpよりもサイズが大きくなるが、TopoJSON(これもJSONファイル)に変換すると小さくなる。小さくできればLeafletでもストレスなく見られる。

スポンサーリンク

.shpをいじってみる

 日本全図を市町村界で分けてみることはあまりなさそうだが、都道府県界で分けられた日本全図はたびたび見かける。

 QGISが使えるなら、
 ベクタ - 空間演算ツール - 融合
 融合フィールドに都道府県の列(地球地図日本のpolbnda_jpn.shpではnamが該当)を指定して
 出力シェープファイル

 47都道府県界のシェープファイルが作られる。
 .shp、.dbf、.shx、.prjの他、.cpg、.qpjも作られる。

 さらにGeoJSON ⇒ TopoJSONに変換すれば、Leafletでも見られる。

 QGISが使えるなら、
 シェープファイル .shpを読み込んで色々処理できて、WMS Web Map Serviceを使って外部のオンライン地図を読み込むこともできる。
 みなQGISで完結。

 行政界の地図をLeafletでオンライン地図に上乗せする必要があるか、といえばあまりないようにも思えるが……。

 シェープファイルはR言語でも扱うことができて
 + Leafletで地図を表示させることができる。
 R言語 + LeafletもGISの一種と言える。

 シェープファイルはJSONファイルの他、KMLファイルなどにも変換できるので、オンライン地図に直接データファイルを読み込ませる、という方法もある。
 GoogleMap + KML、CSV、……
 国土地理院 + KML、GeoJSON、TopoJSON、GeoTIFF、CSV
 ・
 ・
 ・

スポンサーリンク
ふシゼン
タイトルとURLをコピーしました