QGISでTableau用のポリゴンデータを作ってみた
最近、Tableauの色塗りマップにポリゴンデータが必要とのことが分かりました。空間データのことが気になったので、色々調べた結果、Tableauに読み込む前に空間データの前処理をしたほうが良いという結論に至りました。
空間データの前処理についてはPythonでもいけると思いますが、やり方を学ぶには時間がかかりそうなので楽な方法があれば…と思ったら、昔少し触ったことのあるArcGISを思い出しました。
ArcGISは有料ツールなので、代わりに無償なのに機能性が高いQGISを使ってTableau用のポリゴンデータを作ってみたいと思います。
1.QGISのインストール
ネット上にインストール方法の紹介が結構あるので、こちらでは割愛します。ちなみに私は下記のサイトを参考してインストールしました。
インストール完了後、QGIS Desktopを起動します。
デフォルトの画面は英語です。日本語に変更するには、一番上のメニューの「Settings」→「Options」→「General」の「User Interface translation」の順で変更してください。
変更後、言語設定はすぐに反映されないので、一度QGIS Desktopの再起動が必要です。
2.基本レイヤの設定
今回は大阪梅田エリアの主要ビルのポリゴンデータを作ってみたいと思うので、識別しやすいように、Googleマップと衛星画像の両方を活用したいと思います。
こういったマップの取得にはXYZTilesという仕組み(マップをタイルに分割してインターネットで共有する方式)で簡単に実現できます。
まずはXYZTiles方式のURLを取得します。ネットで調べたら色々なソースが見つかると思いますが、今回使うのは下記2つのURLです。
・Google マップ(通常)
https://mt1.google.com/vt/lyrs=m&x=%7bx%7d&y=%7by%7d&z=%7bz%7d&s=Ga
・Google マップ(衛星)
https://mt0.google.com/vt/lyrs=s&hl=en&x=%7bx%7d&y=%7by%7d&z=%7bz%7d&s=Ga
左手のブラウザパネルで「XYZTiles」の項目を探し、右クリックして「新規接続」を選びます。
名前を「Google Map」等識別しやすい名前にして、Googleマップを取得するURLを入力した上「OK」を押します。(他の部分は一切変更しなくてOKです)
衛星マップも同じ方法で登録します。
3.ポリゴンデータ作成
①場所特定
ポリゴンデータを作る前に、まずは大阪梅田の場所を探したいと思います。衛星マップは見ずらいので、一般のGoogle Mapにて場所を特定します。
先ほど作ったGoogle Mapをダブルクリックしてマップを呼び出します。
拡大して大阪梅田エリアを特定します。
場所特定後、先ほど作ったもう一個の衛星マップをクリックし、衛星画像を呼び出します。下図の通り、全く同じ場所に衛星図が上層レイヤとして表示されます。
衛星図はビルの輪郭がくっきりしているので、ポリゴンを描きやすいと思います。
②ポリゴンを作成
こちらのマップはあくまでも背景なので、ポリゴンデータは新規レイヤを重ねてその上に追加することになります。
まずは「レイヤ」→「レイヤを作成」→「新規シェープファイルレイヤ
」の順でレイヤをを作成します。
ファイル名は保存場所と保存名のことで、自由に設定します。
ファイルの文字コードは、Tableauで使うのでUTF-8が無難です。
ジオメトリ型は「ポリゴン」を選びます。
属性リストの部分、デフォルトで「id」という属性が入っています。属性リストはポリゴンデータの情報を示すデータで、今回はidを使わないので削除します。
ビルのポリゴンデータを作るので、ビルのタイプとビル名を示すデータを求めるため、属性を追加します。
属性の名前は半角10文字以内に制限されていますので、短く入力します。型は属性のデータ型に合わせて設定します(今回は全部文字型)。終わりましたら「属性リストに追加」を押したら追加されます。
ポリゴン追加には編集モードへの切替が必要です。下図のようにペンシルマークをクリックすると切替できます。
次に「ポリゴン地物追加」のマークをクリック。
その後はポリゴンを作りたい場所で自由に描けます。
描くことが終わったら、右クリックすると下記の属性入力欄が出てきます。適宜、該当ポリゴンスポットの情報を入力します。
同じ作り方で、複数のポリゴンスポットを登録します。
現在のレイヤで右クリック→「属性テーブルを開く」で、作ったポリゴンスポットの一覧を確認できます。
③ポリゴンデータを出力
出力も簡単です。現在のレイヤで右クリック→「エクスポート」→「新規ファイルに地物を保存」を選びます。
形式は「GeoJSON」で、ファイル名は保管したい場所で自由に設定してください。他は全て変更なしで大丈夫です。
OKを押すとファイルが指定場所に出力されます。
4.Tableauに読み込む
いよいよTableauに読み込みます。
接続は「空間ファイル」を選び、先ほど出力したGeoJASONのファイルに接続します。
ディメンションとジオメトリを選び、表示形式のマップを選びます。
無事にポリゴンスポットが表示されました!バックグランドマップをストリートにするともっと分かりやすいです。
仮の売上データを作って色に入れたら、金額による色塗りができました。
5.最後に
QGISのポリゴンデータ作成とTableau への連携については、単純なスポット表示だけでなく、他の活用も色々ありそうです。
例えば、人流データの経緯度がポリゴンに入っているかをPythonで算出し、Tableauに連携してポリゴンスポットの訪問量を可視化することもできると考えます。
また、QGISを利用して自分で座標を定義し、フロアマップ、倉庫の配置図等のVizも作れるかと思います。
QGISで作ったマップをWMSで共有し、Tableauのバックグランドレイヤとして利用することもできそうです。
機会があれば、また色々試していきたいと思います。
最後までお付き合いいただきありがとうございました!