はじめに
こんにちは!Buchiです。
弊社が株式会社Reviewさんと協業で展開している飲食店DB「macci」を使って
Tableauで渋谷飲食店マップを作成しました(ここで見れます)。
このVizを作成するとき、「空間関数」というやつを使いました。
私はあまりこれまでの業務で空間データを扱ってこなかったこともあり、
Tableauってこんな空間関数があるんだ…なんて便利なんだ!と学びがありましたので、こちらの記事で共有したいと思います!
※参考にした公式ドキュメントはこちら
やってみよう!
サンプルデータ
今回は、こんな感じの渋谷駅と弊社の緯度経度データを例とします。
渋谷駅の緯度 | 渋谷駅の経度 | 株式会社truestarの緯度 | 株式会社truestarの経度 |
35.658034 | 139.701636 | 35.65701034 | 139.6981289 |
緯度・経度を座標化して地図にプロットする ⇒MAKEPOINT
MAKEPOINT関数を使って緯度・経度情報をポイント化して空間データに変換します。
使い方は
MAKEPOINT(latitude, longitude)
とのことなので、計算フィールドにこんな感じで入れます。
作成した計算フィールド「渋谷_MAKEPOINT」をキャンバスにドラッグアンドドロップすると…
プロットできました!
ちなみに、MAKEPOINTを使わなくとも、それぞれのフィールドに地理的役割を与えた上で、
「経度」を列に、「緯度」を行にドラッグアンドドロップすることでも、座標のプロットは可能です。
じゃあ、MAKEPOINTを使うと何が良いのよ…?ということで、次、行ってみましょう!
2点間を結ぶ線を作る ⇒ MAKELINE
MAKELINE関数では、指定された2つのポイントを結んだ線を生成して地図上に表示できます。
まず、先ほどと同様に、株式会社truestarの緯度経度もポイント化してみます。
これを地図上に置くと、truestarの位置もプロットできました
(見やすいようにマークを円にして色をつけています。渋谷駅が赤、truestarが青です)
では、MAKELINEをつかって2点を結んでみましょう!
構文はこんな感じ。
MAKELINE(SpatialPoint1, SpatialPoint2)
このMAKELINEを地図にドラッグアンドドロップすると…2点が結ばれました!
2点間の距離を出す方法 ⇒ DISTANCE
次に、DISTANCE関数を使って、指定された2つのポイントの距離を算出します。
DISTANCE(SpatialPoint1, SpatialPoint2, 'units')
今回は、渋谷からうちの会社まで何mくらいあるかな~ということで、単位を’m’としてみます。
これをMAKELINEのツールヒントに入れてみましょう!
\じゃーん/ ということで、渋谷駅から株式会社truestarまでの距離は337.3mでした!
冒頭に紹介したVizでは、この空間関数を使って、指定された駅からの徒歩分数でお店を絞り込めるようにしています
(このDISTANCE関数で出した距離を、人間の歩く速度で割って所要分数に換算し、フィルタリングしました)。
さいごに
Tableauの空間関数を使用することで、地図上の2点間を結ぶ+距離を算出することができました。
ちなみに、最初2点間の距離を出す…ということで、サイン?コサイン?とか使うんじゃないの…?とビビり散らかしていたので、
関数を使うことによって本当に簡単にできてびっくりしました。
ぜひ皆さんも活用してみてくださいね!