国土数値地理情報から白地図を作る。3


前回までで各県の輪郭は作れる様になりました。前の記事では北海道だけやりましたが、これを47都道府県全てを対象に行います。そして描画のたび毎にこの処理を毎回やるのは時間がかかりすぎます。そこで計算結果をXMLに書き出す事にします。日本地図を描画するには新しく作るXMLから読み出してSVGに描画という流れにします。

1. ディレクトリの準備

SVGを保存するSVGフォルダ、XMLを保存するXMLフォルダを用意します。ディレクトリは次の様になります。

国土数値情報行政区域フォルダにはダンロードしたデータが入っています。SVGとXMLは空のフォルダでplotPrefData3.phpを走らせると各県のSVGとXMLが保存されます。

2. XMLを作成するPHP

plotPrefData3.php

ちょっと長いコードになってきました。実行時間もかなりかかります。私のMacBook Pro(macOS Sierra 2.9 GHz Intel Core i5)では12096秒(201分)かかりました。

3. PHPのバージョンについて

余談ですがPHPのバージョンは7.0を使っています。

標準で入っているPHPは5.0系だと思いますが7.0系にすると処理速度が格段に上がります。だいたい2倍ぐらいに速度あがります。

PHPのバージョンアップは「MacをPHP7へバージョンアップする」あたりを参考にどうぞ。

4. XMLからSVGを作成するPHP

次に書き出したXMLから47都道府県を1枚のSVGに描画するPHPが必要になります。

plotXML2JapanPrefBound.php

このスクリプトでjapanPrefBound.svgというファイルが出来上がります。このファイルをSVGを表示できるアプリで開けば県別の白地図になっています。が、、、このファイル266.6MBもあって簡単には開けません。Illustratorでは無理。Safariも開けませんでした。Chromeで開けますが全体を描画し終わるまでに時間がかかります。ゆっくりと描画していく様子を見ながら待ちましょう。

とりあえず出来ましたが、このままでは使い勝手が悪すぎるのでファイルサイズを軽くするために以下の事を考えます。
・小さい島は描画しない。
・点と点の間隔を調整する。広げる。

これは次の記事で。