キレイな白地図(都道府県)を自作する(ゴミラインを消去する)

国土数値情報の行政区域データ(市区町村境界)を使って、都道府県境界の白地図を作ります。

普通に、描画→ディゾルブ(dissolve・融合)すると、下図のように、東京や大阪などにゴミラインが残ってしまいます。

これを、今回紹介する方法(緯度経度の制度を下げてからディゾルブ)すると、下のようにきれいな都道府県境界の白地図にできます。

QGISがインストールされている体で話を進めます。
まだの方は、下記の記事なんかが参考になると思います。

【実習編】非専門家のためのQGIS ~QGISのインストール~|はとば|note
I. QGISを導入しよう このnoteでは、GISの導入と利用方法のさわりを紹介します。GISソフトは商用のもの、フリーのもの含め色々ありますが、ここではQGISを選択します。 QGISは、だれでも自由に利用できるフリーソフトです(※1)。フリーソフトでありながら地理空間情報の作成、編集、表示、解析などGI...
スポンサーリンク

行政区域データのダウンロード

国土交通省が運営するオープンソースデータの公開サイトである「国土数値情報」にアクセスし、
行政区域データ → 全国
をダウンロードします。

国土数値情報 | 行政区域データ

現状、一番新しい令和3年度版をダウンロード。
右端の青い矢印ボタンをぽちすればOKです。

ダウンロードしたら展開します。

QGISを開いて、地図に展開した中の「.shp」というファイルをドラッグ&ドロップします。

簡単に、白地図(市区町村境界)が描けました。
が、今回、つくりたいのは都道府県境界なので、この市区町村境界を融合(ディゾルブ)して、市区町村の境をなくします。

上にあるツールバーから、ベクタ→空間演算ツール→ディゾルブ(融合)を選びます。

「入力レイヤ」は、何もしなくても行政区域を選んでくれているはず。

「基準となる属性」は、右の「・・・」を押して、「N03_001」にチェックしてOKです。何かというと、このN03_001っていう列に「都道府県名」が書かれています。現状「市区町村名」別に境界でわけられてバラバラになってるけど、都道府県名が同じものはひとつに融合してまえ~ということですね。いまは全市区町村分の地物(行数)がありますが、実際、融合してみると47個になります。

「融合ポリゴンの出力」は、これまた「・・・」を押して適当な場所に適当な名前で保存します(デスクトップにjp_dissolveとか)。形式はshpでも何でもよいですが、gpkg(ジオパッケージ)形式を選びました。

実行、ぽちっとな。(それなりの時間が、かかりまする)

都道府県境界の白地図がでけました!お~簡単じゃん。

ちなみになんかいつも見てる日本地図と違う気がするな~と言う方は、ディゾルブしてできたレイヤを右クリック→レイヤのCRS→レイヤのCRSを設定で、EPSG:3857とかに設定すると見慣れた感じになると思います。

スポンサーリンク

ここからが本題…若干残る「ゴミライン」は何だ

しかしですね、しかしです。よーく見てみると、なんか要らない変な線(ゴミライン)が東京や大阪のあたりに残っています。

ゴジラの足跡でしょうか・・・?

いや違う。では、なぜこんな線ができるのか。その理由を探るため(アマゾンの奥地には行かずに)、レイヤをダブルクリック、「レイヤプロパティ」を開いて、左の「情報」を選択します。すると・・・

ことほとさように、緯度経度が、ものすごい精度(小数点以下16桁!)で描画されていることがわかります。

実はどうも、この精度が良すぎて、隣り合う市区町村の境は一本になるはずが、「微妙な隙間」ができてしまい、これが融合しきれずゴミラインになって残ってしまうようなのです。困ったな。東京や大阪は区が密集しているので、隙間ができやすいということなのでしょうか。困ったな。

スポンサーリンク

精度を落として書き出す

この問題を、若干、手数はかかりますが、こんなことをします。

まずディゾルブする前の、元の.shpのレイヤを右クリック→エクスポート→新規ファイルに地物を保存

で、まず一番上の形式ですが「geojson」という(私は)聞き慣れない形式を選択します。

ファイル名は適当につけます。

そして3つめ!これが重要なのですが、「COORDINATE_PRECISION」を15から5に落とすこと!これが、緯度経度の「小数点以下の精度」を表します。わざと精度を落として、線を”ぼやかす”ことで隙間がうまれないようにしようというわけです。この精度を選べるので、わざわざgeojsonにしたわけです。

OK,QGIS・・・ぽちっとな。(それなりの時間がかかります。)

で、もう一回QGISに読み込ませる(地図にドラッグ&ドロップ)…のですが、geojsonって重いんですね~。

ヒマなので、読み込んでいる間に、つくったgeojsonをテキストエディタとかで見てみます。お~小数点以下、5桁になってるなってる。

読み込み完了したら、再度、ディゾルブします。ベクタ→ディゾルブ(融合)ですね。

先ほどと同じく、「N03_001」を選んで…。実行!(しないで先を読んでね!)

・・・って、あああぁァァァ~~~~!なんだこりゃ。日本を沈没させてしまった。。。

失敗か…。どうやら、精度を無理やり落としたことで、なにか別の不具合がおこっているよう。。。

で、困ったときはこれ、上のタブにあるプロセシング→ツールボックスで出て来たウィンドウの検索に「修復」と入れてenter!「ジオメトリの修復」を選択します。対象を作ったgeojsonにして実行。

これを、ディゾルブ(融合)すると・・・。

見事、きれいな都道府県境界の白地図をつくることが出来ました!

ゴミライン、なし!

地理の高校必修化で白地図の需要も増えるかもですね。参考になれば幸いです。

コメント