弊社では、政府統計の総合窓口サイトe-Sataで公開されている2015年国勢調査の市及び区の境界データに基づいたTopoJSONデータをPowerBI向け仕様でご提供していますが、今回新たに国土交通省のGISホームページで公開されている国土数値情報「行政区域データ」に基づいた各都道府県のTopoJSONデータを作成することに致しましたので、その内容をご紹介したく存じます。
なおMANDARA10で無償公開されている日本市町村緯度経度ファイルの地図情報との違いにつきましては一番最後にご説明させていただきます。
国土交通省の国土数値情報 行政区域データとは?
「国土数値情報」につきましては、下記GISホームページで次のように記載されています。
国土数値情報は、国土計画の策定や実施の支援のために整備されたものです。
行政区域、鉄道、道路、河川、地価公示、土地利用メッシュ、公共施設など、国土に関する様々な情報を整備しています。
この国土数値情報のなかにある「行政区域データ」は都道府県の市区町村の行政区域を地図情報とともに提供してくれています。実際のダウンロードサイトは下記になります。
なお、地図情報は国土地理院が発行している数値地図(国土基本情報)電子国土基本図(地図情報)を複製したものです。
従いまして、「行政区域データ」を商用利用するためには国土数値情報利用約款に従いつつ、国土地理院の地図の利用手続きに従う必要があります。
国土地理院の電子国土基本図(地図情報)とは?
国土交通省国土地理院が提供してくれている電子国土基本図(地図情報)の内容につきましては下記のサイトで説明されていますが、要約すると「電子地図上の位置の基準である項目と土地の状況を表す項目とを一つにまとめたデータ」になります。
なおこの電子国土基本図(地図情報)は、「縮尺レベル25000の精度に限定することなく、より精度の高いものを含んだ」情報になっていると書かれています。
どのくらいの縮尺かは明示されていませんが、電子国土基本図(地図情報)は下記の地理院地図のサイトで実際に動かしてみることができます。
この地図にはスケールバーで縮尺が表示されているので、最大まで地図表示を大きくズームインさせると画面上のスケールバーの長さを図ると2cmで縮尺30mと表示されるので、少なくともそのレベルの精度までは提供されている事が解ります。
30mは30,000cmなので、それが画面上2cmで表示されているという事は、30,000cm÷2cm=15,000となります。
つまり縮尺レベルは15000になります。
各都道府県行政区域TopoJSONデータを作成する目的
行政区域コードで集計されているデータの分布を可視化するための地図情報をTopoJSONでご提供したいと考えています。
具体的な利用方法につきましては下記のような形を想定しています。
- PowerBIの「マップのシェイプ」で使用する
- ローカル環境でWebブラウザに表示させて使用する
上記の項番「1」につきましては「Power BI Desktopでのカスタムマップの使用方法」でご説明致しております。
項番「2」につきましては、あらためて別途ご説明致します。
どのような精度の地図情報をご提供するのか?
国土数値情報 ダウンロードサービスで提供されている行政区域の地図情報は「ベクトルデータ」と呼ばれる座標値を持った点・線・多角形のデータで作られているために、地図を拡大縮小したとしても地図情報の精度そのものが変わる事はありません。
一般的にこの「ベクトルデータ」を地理情報システム(Geographic Information System)やWebシステムを使って表示した時には、指定された縮尺で画面表示されるためデータ精度が変わっているように見えているだけです。
そうなると、この地図情報を商用利用する際に「国土地理院の利用条件に抵触しないようにする」ためには「ベクトルデータ」に設定されている座標値の個数を減らしたり座標値の値を変更したりする事が必要です。
つまりは地図精度を下げる事を意味しています。
そのため(提供されている地図情報を単純にTopoJSON形式に変換しただけでご提供することはできませんので)、元の地図情報に次のような加工を施しています。
お手数ですが内容をご確認いただければ幸いです。
①陸地から離れた 小さな 「島、岩、港湾設備など」の情報は原則削除しています。
内陸県8県(栃木・群馬・埼玉・山梨・長野・岐阜・滋賀・奈良)を除いた海岸線を持つ都道府県には、陸地から離れた場所に多くの本項目の地図情報が登録されていますが、それらは原則削除をしています。
「小さな」の定義としましては「Google Map縮尺1/1,000,000で表示されない」といたします。
※ただし一部削除せずに残しているものもや簡素化により消えてしまっているものがありますのでお含み置きいただければ幸いです。
②地図情報の中に埋め込む属性情報は行政区域コードだけにしています。
国土数値情報の「行政区域データ」には地図情報(ベクトルデータ)の他に次のような属性情報が付加されています。
国土数値情報の「行政区域データ」に記載されている内容を元に表としてまとめています。
都道府県名 | N03_001 | 都道府県名称 |
支庁・振興局名 | N03_002 | 該当する支庁・振興局の名称 ※情報がセットされているのは北海道だけになります。 |
郡・政令都市名 | N03_003 | 当該行政区の郡又は政令市の名称 |
市区町村名 | N03_004 | 当該行政区の市区町村の名称 |
行政区域コード | N03_007 | 都道府県コードと市区町村コードからなる、行政区を特定するためのコード |
上記の表の中で一番最後の「行政区域コード」だけを残して、その他は属性情報から削除しています。
その理由としては
- PowerBIでは諸所のデータは地図情報とは分離して保持するために、お互いを紐づけるためのコードが相互に附番されていれば良いからです。
これにより様々な分布図をデータを変えるだけで表示することができます。- PowerBIでの紐づけ方法につきましては、前項でもご紹介しました「Power BI Desktopでのカスタムマップの使用方法」をご参照いただければ幸いです。
- Webシステムにおける紐づけコーディングにつきましてはあらためて別途ご説明致します。
- 諸所のデータと分離する事で、地図情報のファイルサイズを小さくすることができます。
③地図情報のファイルサイズが概ね800KB(=0.8MB)を下回るようにしています。
属性情報を「行政区域コード」だけにしたTopoJSONとしても800KB以下のファイルサイズにするためには座標値の値を変えただけでは減らないので、座標値の個数を6割から9割程度削減する必要があります。
ちなみに9割削減しなげればならなず、ファイルサイズが800KBになるのは、陸地面積が一番広い北海道のケースです。
「800KBというボーダーラインがどこから来ているか?」という疑問なのですが、PowerBIで地図をズームした時にストレス無く動くかどうか?というところからになります。
動作はパソコン環境にも依存する部分があるとは思いますが弊社環境はCPU:Intel Core i7-8559U、メモリー:16GBになります。
これは想像になりますが、そもそもPowerBIでは地図情報がそれほど高精度であることを想定していないのではないかと思います。
というのも、デフォルトで設定されている地図情報にまだ日本は含まれていませんが、日本で言えば市区町村ではなく都道府県レベルの精度のデータになっているからです。
④簡素化は「飛び地」や「島」など小さな領域の地図情報が極力残る範囲で実施しています。
以降、座標値の個数を削減する事を「簡素化」と表現することに致します。
簡素化はやろうと思えばどこまでやる事は可能ですが、やり過ぎると見た目が地図というよりも幾何学模様のようになってしまいます。
そこで簡素化する際に「どこまで簡素化するのか?」について基準を考えた時に、そうする事にあまり意味は無いかもしれませんが、小さな「飛び地」や小さな「島」が欠落しない範囲で実施することに致します。
そうは言いましても「飛び地」にはとても小さな領域のものが存在します。そのようなものを残した時に出来上がったTopoJSONファイルサイズが800KBを超えてしまうケースでは、「飛び地」や「島」の欠落を防ぐよりもファイルサイズを優先させることに致します。
なおファイサイズ800KBで揃えた場合は、都道府県で地図の見た目がバラバラになってしまうため上記のやり方を統一する事に致しました。
それから「飛び地」につきましてはGoogle検索で調べるといろいろと情報があるようですが、今回対象とする「飛び地」は電子国土基本図(地図情報)で「ベクトルデータ」として表示されているものになりますのでお含み置きいただければ幸いです。
地図情報を加工するツールはQGISとmapshaperを使用しています。
「国勢調査TopoJSON For PowerBI」ではMANDARA10とmapshaperを使用していましたが今回はQGISとmapshaperを使用しています。
QGISは無償利用できるオープンソースの地理情報システム(GIS)でWebシステムではなくデスクトップソフトウェアです。
MANDARA10からQGISにツールを変更した理由ですが、複雑な海岸線を持った県を加工してmapshaperでTopoJSONに変換をした際に大量のintersections(線の交差)が発生した事によります。国勢調査の時にもintersectionsの発生はありましたが多くて数十だったのですが、一桁違う数での発生となりました。
もっとも座標値の値が極わずか変わるMANDARA10の方が「国土地理院の利用条件」をクリアするためには適しているはずなのですが、数が多いといくら簡素化するものとはいえ手作業での修正になるので品質を保てるのか心配になりました。
なおQGISとMANDARA10での座標値の違いにつきましては、あらためて別途ご説明致します。
QGISでは小さな 「島、岩、港湾設備など」の削除と属性情報の削除をしています。
mapshaperでは簡素化とTopoJSON形式への変換をしています。
mapshaperの操作方法につきましては、あらためて別途ご説明致します。
MANDARA10で無償公開されている日本市町村データ
冒頭でお知らせしたリンクからダウンロードできるZIPファイルにはMANDARAの圧縮地図ファイルである「日本市町村緯度経度.mpfz」が含まれています。
このファイルはMANDARA10のマップエディタから「ファイル→地図ファイルを開く」から選択して開くことができます。
ファイルを開くと日本全国の市町村区切りの地図が開かれます。
その属性データを見ていただければ解るのですが、1990年から5年ごとの人口と面積に関する情報が保存されていて、そのため地図情報も1990年の行政区域を反映しているようです。
そのため「平成の大合併」と呼ばれる1999年から2010年にかけて行われた市町村合併後の分布図を作る場合は流用する事は難しい認識です。
従いまして違いを簡単にまとめますと下記の2点になります。
- 都道府県別にデータが別れていない。
- 地図情報は最新の行政区域データではない。
最後に:地図情報の更新頻度
国土交通省の国土数値情報 行政区域データは毎年更新されているようですが、いまのところ2年に一度の頻度でご提供する地図情報を更新して参る所存です。
なお文中で「あらためて別途ご説明」とさせていただきました内容及びご提供するデータにつきましては1ヵ月を目途に作成致します。
以上最後までご一読いただき誠にありがとうございました。