.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
・
・
・