Lookerでは、自作した境界データを利用して地図上での可視化を行うことが可能です。これにより、営業エリアが複数の市区町村をまたがっている場合などでも、棒グラフ・円グラフなどだけではなく地図上での塗分けによる可視化を行うことが可能になります。(都道府県別の数値を可視化したいというご質問が多いようですので、こちらに、その方法を記載します)
(注:本文中に記載のリンクは本記事執筆時のものでありリンク先URLが変更になっている可能性があります。 また、こちらに記載の内容については、弊社サポートチームにお問合せ頂いても対応致しかねる場合がございます点についてご留意ください)
上記可視化を行うためには、各地域の地形シェイプデータおよび各地域情報を含めたデータが必要になります。
Lookerでは、地図上の領域を表現するためにTopoJsonという形式のデータを利用します。地形データは複雑な地形になってくるとデータサイズが巨大になってしまいますが、このTopoJsonを利用することで軽量化を行うことができます。
TopJsonについては、shapefileフォーマットやgeoJson形式のデータをお持ちになられていれば、Mapshaperというオンラインツールで簡単に変換することが可能です。変換方法については、こちらの記事を参照ください。
今回は、都道府県の境界線データを利用してコロナ感染者数を地図上に可視化します。
上記感染者数は、こちらの新型コロナウィルス感染症対策で公開されているオープンデータから、11/1現在の都道府県別の感染者数をCSV形式に加工して利用しています。
また、都道府県別の境界データについては、こちらのData Of Japanにて公開されている行政区分データを利用しています。(出典元:地球地図日本)
Lookerでアップロードしたいプロジェクトを開き、topoJSONファイルをドラッグ・アンド・ドロップすることでインポートができます。
地図の境界データがアップロードできましたので、LookML上にMapレイヤーを作成していきます。以下のようにモデルファイルに追加します。
map_layer: japan_pref {
file: "japan.topojson"
format: topojson
property_key: "nam_ja"
}
file
パラメータは、プロジェクトにある地図データを参照しています。property_key
パラメータにて元のデータと領域を紐付ける際に利用する項目名を指し示しています。
file
プロパティの代わりにurl
パラメータを利用してtopoJsonがホスティングされているURLを指定して利用することも可能です。
最後に行っているのは、viewのdimensionと新しく作成したMapレイヤーを関連付けるだけです。
dimension: prefecture {
map_layer_name: japan_pref
type: string
sql: ${TABLE}.prefecture ;;
}
上記のように定義したLookMLを利用してExploreで感染者数を表示すると以下のようになります。
なお、上記はUser Attributeで
Locale (beta)
をja_JPに変更しているため地図中の市区町村などの表記が日本語名に変更されています。ヘルプのロケールへのユーザーの割り当てに記載があります。