Lookerでは、自作した境界データを利用して地図上での可視化を行うことが可能です。これにより、営業エリアが複数の市区町村をまたがっている場合などでも、棒グラフ・円グラフなどだけではなく地図上での塗分けによる可視化を行うことが可能になります。
今回は、東京都の人口データを利用した可視化を行ってみたいと思います。
(注:本文中に記載のリンクは本記事執筆時のものでありリンク先URLが変更になっている可能性があります。
また、こちらに記載の内容については、弊社サポートチームにお問合せ頂いても対応致しかねる場合がございます点についてご留意ください)
##領域データの準備##
上記可視化を行うためには、各地域の地形シェイプデータおよび各地域情報を含めたデータが必要になります。
Lookerでは、地図上の領域を表現するためにTopoJsonという形式のデータを利用します。地形データは複雑な地形になってくるとデータサイズが巨大になってしまいますが、このTopoJsonを利用することで軽量化を行うことができます。
TopJsonについては、shapefileフォーマットやgeoJson形式のデータをお持ちになられていれば、Mapshaperというオンラインツールで簡単に変換することが可能です。変換方法については、こちらの記事を参照ください。
今回は、以下のように東京都の人口数・世帯数のデータを地図上に表現したいと思います。
東京都の人口データについては、こちらの東京都の人口(推計)からのリンク先PDFを使って作成しました。
また、東京都の境界データについては、こちらの国土数値情報 行政区域データからダウンロードしました。
geoJson形式のファイルもダウンロードすることができるため、topoJson形式に変換して利用します。このファイルは、N03_004
というプロパティに市区町村名が入っているようなので、この項目でマッピングをしていきます。
##境界データのアップロード##
Lookerでアップロードしたいプロジェクトを開き、topoJsonファイルをドラッグ・アンド・ドロップすることでインポートすることができます。これにより、LookMLコードとともにリポジトリへコミットすることが可能です。
##Mapレイヤーの作成##
地図の境界データがアップロードできましたので、LookML上にMapレイヤーを作成していきます。
以下のようにモデルファイルに追加します。
map_layer: tokyo_map {
format: topojson
property_key: "N03_004"
file: "tokyo.topojson"
}
file
パラメータは、プロジェクトにある地図データを参照しています。property_key
パラメータにて元のデータと領域を紐付ける際に利用する項目名を指し示しています。
file
プロパティの代わりにurl
パラメータを利用してtopoJsonがホスティングされているURLを指定して利用することも可能です。
##Mapレイヤーとデータの関連付け##
最後に行っているのは、viewのdimensionと新しく作成したMapレイヤーを関連付けるだけです。
dimension: city {
label: "市区町村"
type: string
map_layer_name: tokyo_map
sql: ${TABLE}.CIty ;;
}
##地図表示##
上記のように定義したLookMLを利用したExploreで世帯数を表示すると以下のようになります。
なお、上記はUser Attributeで
Locale (beta)
をja_JPに変更しているため地図中の市区町村などの表記が日本語名に変更されています。ヘルプのロケールへのユーザーの割り当てに記載があります。
ご参考になりますと幸いです。以降もTipsをお届けしたいと思います。