GeoJSONファイルからTopoJSONファイルへ -GIS-

MAP(地図)

 行政界の地図をLeafletでオンライン処理して表示する場合、(サイズにもよるが、)GeoJSONだと重くなる。

 この点、GeoJSONをギュッと圧縮したTopoJSONならば、ギュンと改善される。

 TopoJSONからGeoJSONへ変換することも可能。

 エディタでいじる場合、緯度・経度が読めるGeoJSONのほうが分かりやすい。というかTopoJSONはいじれない。

スポンサーリンク

GeoJSONからTopoJSONへ

 さて、どのようにTopoJSONへ変換したらよいか。
 全般的にTopoJSONに関する情報はあまり多くない。

 npmを使ってインストールできる、ということで、それだけのために

 Node.js(nodejs.org/)をダウンロードしてインストール。

 Node.jsは、ブラウザの外でも(≒サーバーでも)使えるJavaScript。

 npm Node Package Managerは、読んで英字の如くNode.jsのパッケージ・マネージャー。

 コマンドプロンプトから

npm install -g topojson

でTopoJSONツールのインストール。

 以前は、

topojson -o polbnda_jpn.topojson polbnda_jpn.geojson

で変換できたが、今は、

geo2topo polbnda_jpn.geojson > polbnda_jpn.topojson

といった具合に大きく変わっている。

 以前は、

topojson -p adm_code -p nam -p laa -p pop -o polbnda_jpn.topojson polbnda_jpn.geojson

で必要な属性(上の場合、adm_code列、nam列、laa列、pop列)が残り、

topojson -p -o polbnda_jpn.topojson polbnda_jpn.geojson

で全ての属性が残り、
 -pをつけないと図形情報しか残らない、という仕様だった。

 TopoJSONについては下のページにまとめた。

スポンサーリンク

mapshaperで簡素化

 幸いmapshaper(mapshaper.org/)というツールを使えば、GeoJSONからTopoJSONへ変換できる。
 簡素化もできる。

  •  GeoJSONファイルのImport
  •  簡素化 Simplify
  •  ExportでTopoJSONを選択して保存

という流れ。

 TopoJSONツールで、11MBのGeoJSONファイルが1.5MBのTopoJSONファイルにギュッと圧縮されたが、もっとサイズを小さくしたい……。

 Simplifyで15%にすると900KB弱。

 ここから10%、8%、5%、3%、……と簡素化していくと小さい島々が次々と消えていってしまう。
 0%。

 サイズが小さくなったが、佐渡島もないし、対馬もないし、消えすぎ。

 15%-10%ぐらいまでは、あまり気にせず簡素化できる。
 地形次第では、5%や3%でもたいして崩れない。

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