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

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

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

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

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

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

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

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

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

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

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

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

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

簡単に、日本地図が描けました!
が、今回、つくりたい都道府県境界ではなく、市区町村境界の、めちゃ細かい境界の地図になってしまっています。

この市区町村境界を融合(ディゾルブ)して、都道府県の境界にします。

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

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

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

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

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

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

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

スポンサーリンク

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

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

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

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

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

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

スポンサーリンク

元データの精度を落として書き出し→ディゾルブ

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

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

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

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

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

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

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

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

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

先ほどと同じく、「N03_001」を選んで…。実行すると、下のように失敗します。(しないで先を読んでね!)

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

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

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

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

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

ゴミライン、なし!

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

スポンサーリンク

ありがとうございます!

引用して頂きました。恐縮しきりです。

このような記事もどうぞ!

【QGIS】緯度経度リストを地図に描画

コピペできる!全市区町村一覧・漢字<都道府県+市区町村名>

コメント