PowerBI

町丁目単位の塗りつぶし地図を作る

「Microsoft Power BI Advent Calendar 2017」の12/24分が空いていたので、急遽書いてみました。ご参考になれば幸いです。

はじめに

PowerBIで、国別、都道府県別、市区町村別の塗り分け地図を作成するビジュアルはありますが、例えば、市内の町丁目別の塗り分け地図を作成するには、ひと工夫がいります。
今回は公開されている町丁目別のSHAPEファイルを使って、塗りつぶし地図を作成する工程の一例をご紹介します。

町丁目データを入手する

町丁目(市町村の行政区画)の境界データを入手する方法として、『政府統計の総合窓口(e-Stat)』のサイトからダウンロードする方法をご紹介します。手順は、
1. 『政府統計の総合窓口(e-Stat)』のトップページから「地図で見る統計(統計GIS)」をクリックし、さらに「データダウンロード」をクリックすると、統計表検索画面になります。
2. 「Step1:統計調査(集計)を選択」で、調査名から「国勢調査」を選び、さらに、いづれかの年の「国勢調査(小地域)」を選択します。
3. 「Step2:統計表を選択(複数選択可能)」で統計表を選択して、「統計表各種データダウンロードへ」のボタンをクリックします。統計表で何を選んでよいかわからない場合は、「男女別人口総数及び世帯総数」を選んでおいてください。
4. 次の画面で、「Step3:地域選択」都道府県と市区町村を選択し、検索ボタンをクリックします。この時、市区町村は複数選択できますが、ダウンロードされるファイルは市町村別にばらばらになりますので注意してください。
5. すると、「Step4:データダウンロード」の箇所に統計データと境界データのリンクが表示されます。境界データの中から「世界測地系緯度経度・Shape形式」のデータをダウンロードします。(ここで、ダウンロードしたファイルは図化に必要なファイルをまとめたzipファイルになっています。)

境界データを変換する

境界データを塗りつぶしに使う地図として使用するには、SHAPE形式のファイル(zipファイル)をTopopJSON形式に変換する必要があります。変換にはオンラインツールのMap Shaperを使います。
1. ブラウザでMap Shaperを開きます。
2. 「Drop files here or select from a folder」の枠内に、先ほどダウンロードしたzipファイルをドラックします・すると、zip内の構成ファイル名が表示されますので、そこにある「import」をクリックします。
3. インポートされた境界データの図形が表示されますので、表示されたら右上にある「export」をクリックし、ファイルフォーマットで「TopoJSON」を選択して「export」をクリックします。
4. 保存するファイル名を指定して、jsonファイルをダウンロードします。

PowerBIで塗りつぶし地図を作成する

  1. 町丁目別の数値データをクエリとして取り込みます。(前述「Step4」で表示された統計データは、町丁目の名称と数値データが含まれています)
  2. レポートにShapeMapビジュアル(「マップのシェイプ」ビジュアル)に追加し、取込んだ町丁目別の数値データクエリの町丁目名称のフィールドを「場所」に、数値データを「値」に設定します。 図1.png
  3. ビジュアルの書式を選択して、「シェイプ」の中から「マップの追加」を選択し、先ほど変換したTopoJSONファイルを指定します。
  4. TopoJSONファイル内で定義されている町丁目名のキー(「書式」>「マップキーの表示」をクリックすると確認可能)に対応した値をつかって塗りつぶし地図が作成されます。
  5. 図2.png

注意点

  • TopoJSON*で定義されている町丁目名のキーに含まれない地名は、塗りつぶすことはできません。
  • 町丁目名と値の組み合わせはすべて用意する必要はありません(値のない町丁目名はクエリデータに含まれてなくてもよいです)
  • 境界図形の編集、複数境界ファイルの結合などは、SHAPE形式のファイルの段階で、別途編集ツールなどで行ったほうが良いと思います。(自分はまだやったことがありませんm(__)m)

参考サイト

Power BI Desktop での図形マップ (プレビュー)