注: Looker 22.14 では、map_layer パラメータに GeoJSON ファイルのサポートが追加されました。
Looker にはいくつかの組み込みの地図のレイヤが含まれていますが、カスタムマップ リージョンを定義して地理データを表示することもできます。次のように、3 つの地域の平均年齢のテーブルがあるとします。
| お客様の地域 | お客様の平均年齢 |
|---|---|
| 中心街 | 19.5292 |
| 東側 | 54.4626 |
| 西側 | 34.9534 |
お客様の地域を特定の地理的地域にマッピングして、地図上で可視化することもできます。これを行うには、このページで説明する手順に沿って操作してください。
リージョン データを準備する
リージョン データを準備するには、各リージョンの地理的な形状が含まれたデータファイルと、リージョンをデータベース内のデータに関連付けるメタデータが必要です。
Looker では、TopoJSON という形式を使用してこのデータをコンパクトに保存します。TopoJSON ファイルは、一般的な多くのシェイプファイル形式から簡単に作成できます。また、コミュニティ投稿のシェイプファイルを TopoJSON に変換するで説明されているように、オンライン ツールを使用して自分で描画することもできます。
この例では、このマッピングを提供する TopoJSON ファイルがすでに準備されています。TopoJSON ファイルの各リージョンには、Customer Neighborhood フィールドの値と一致する neighborhood というプロパティがあり、それは neighborhood というディメンションとして LookML プロジェクトに定義されています。
リージョン データをアップロードする
リージョン データを Looker にインポートするには、TopoJSON ファイルをプロジェクトの [File Browser] セクションにドラッグ&ドロップします。このデータは LookML コードと一緒に commit され、LookML プロジェクトの他のコードと同様に更新されます。
地図のレイヤを作成する
プロジェクトにリージョン データが揃ったので、LookML モデルに地図のレイヤを作成する必要があります。
モデルファイルには、map_layer パラメータを使用して定義を追加できます。
map_layer: my_neighborhood_layer {
file: "neighborhoods.topojson"
property_key: "neighborhood"
}
file パラメータはリージョン データを含むプロジェクト内のファイルの名前を参照し、property_key は Looker 内で公開するデータセットのプロパティです。キーが不明な場合は、プロパティキーを省略します。このようにすることで、Looker が適切なキーを選択しようとします。
ヒント: レイヤ定義で、fileではなくurlを指定すると、オンラインの他の場所でホストされている TopoJSON ファイルを使用することもできます。
map_layer: my_neighborhood_layer {
url: "https://raw.githubusercontent.com/cooluser/JSON_Stuff/master/Neighborhoods.topoJSON"
property_key: "neighborhood"
}
地図のレイヤをデータに関連付ける
後は、map_layer_name パラメータを適用して、ビュー内のディメンション neighborhood を新しく作成した地図のレイヤに関連付けるだけです。
dimension: neighborhood {
sql: ${TABLE}.neighborhood ;;
map_layer_name: my_neighborhood_layer
}
これにより、このディメンションの値が地図のレイヤによって公開される property_key に関連付けられていることが Looker に伝わります。また、地図上にこのデータを表示できることも Looker に知らせます。
地図の表示
以上で、neighborhood ディメンションを使用するクエリが、Explore ページから地図上に表示されるようになりました。