この記事は『CRESCO Advent Calendar 2022』の7日目の記事です。
みなさんこんにちは。データテクノロジーセンターの飯村北海です。
相変わらず、[PR]Tableauなどを活用したBI導入サービスを提供しています。
[PR]Tableauスタートパッケージのページができたので見てください。
昨日に引き続き、Tableauで歩数を可視化していきます。
前回の記事は、社員の歩数(距離)で地球が何周できるかを可視化するTableauダッシュボードの話でした。
しかし、旅行の要素があまりなかったので、今回は歩いた歩数(距離)で実際に旅行した気分になってみたいと思います。
今回の要件はイベント期間内にチーム別に歩いた距離でどこまで行けるか?を可視化します。
試行錯誤しているときに距離計算に非常に時間がかかることが分かったため、今回はあらかじめチーム別に距離を集計したデータを使用します。
※下記はデータイメージです。
所属 | 距離_km |
A事業部 | 5395 |
移動したいので、開始座標と終了座標を用意します。
開始座標はクレスコの事業所をGoogle Mapで取得しました。事業所名、緯度、経度の3列で構成されるデータです。
※下記はデータイメージです。
事業所名 | 緯度_出発地 | 経度_出発地 |
品川本社 | 35.62770286 | 139.7419921 |
終了座標は、チーム別の集計データでどこまで行けるかわからないので、国内と国外の両方(250か所)を用意しています。
座標データは事業所(出発地)とは異なり、目的地の候補は数も多く、手で集めるのも時間がかかるのと手軽に(自由に)使えそうでもなかったので、国内はサンプルスーパーストアの都道府県から自動算出する座標を使用しています。
国外に関しては、外務省が提供している国名コード表(PDFなんですが)をTableauで読み込んで、ユニオンして、そこから得られた座標を別に保存しています(見つからない国名もありましたが、いくつか手動修正してます)。用意した列は国内外の区分、地名、緯度、経度の4列です。
※下記はデータイメージです。
区分 | 地名 | 緯度_目的地 | 経度_目的地 |
国外 | アイスランド | 64.826 | -18.417 |
国内 | 北海道 | 43.064 | 141.346 |
やりたいことは出発地から(歩いた距離に応じた)目的地までの線を引くことと、その目的地の情報を手に入れることです。まずは地図上に線を引くことを考えてみましょう。
Tableauで標準で提供されている空間関数にMAKEPOINT、MAKELINE、DISTANCEなどが用意されています。線を引くにはMAKELINE関数を使用します。詳しくはTableauのヘルプを見てほしいのですが、開始座標から終了座標を引数に取る関数です。
開始座標と終了座標はMAKEPOINT関数で作成します。この関数は緯度と経度を引数に取ります。
開始の緯度・経度、終了の緯度・経度と4変数必要となり、「緯度出発地」「経度出発地」「緯度目的地」「経度目的地」をそれぞれ出発地用、目的地用にMAKEPOINT関数で指定します。
開始座標から終了座標までの距離を求めます。距離はDISTANCE関数を使用しますが、MAKELINE関数を同じ要領で開始座標と終了座標を引数で指定します。
事業所を選ぶと唯一の行がフィルターできるようにあらかじめパラメータを作成しておきます。
上記を踏まえて、作成した計算フィールドはこちらです。
IF [事業所] = [事業所名] THEN [緯度_出発地] END |
IF [事業所] = [事業所名] THEN [経度_出発地] END |
MAKEPOINT([選択された開始緯度], [選択された開始経度]) |
MAKEPOINT([緯度_目的地], [経度_目的地]) |
MAKELINE([出発地の座標], [目的地の座標]) |
DISTANCE([出発地の座標], [目的地の座標], "km") |
SUM([距離_出発地_目的地_km]) < SUM([距離_km]) |
あとは線をMAKELINE関数で作成した「線出発地目的地」をダブルクリックすると勝手に作成してくれます。
とはいえ、これだけだと獲得距離にかかわらず、すべて表示されてしまうので、先ほど作成した「到達可能圏内」をフィルターに設定して目的地を絞ります。また、稼いだ距離によっては国内だけになってしまうチームもあるので、国内外の「区分」フィールドをフィルターとして設定します。最後に所属別に変化を見たいので、「所属」フィールドもフィルター設定します。
あとはそれぞれの曲線をマウスでポイントしたときにツールヒントが表示され、アクションを実行できるように「地名」や「距離」、「URL」などを設定していきます。
詳しい内容はここでは割愛します。後述のTableau Publicからダウンロードして確認してみてください。
動きがあった方がイメージしやすいのでこちらでご確認ください。
所属(チーム)を選択すると、その所属が獲得した距離(歩数)から移動できる目的地の候補が線とともに出てきます。出発地点は先ほど述べた事業所で、6か所から選択ができます。
また、線をマウスでポイントすると、その目的地の観光名所を下部から見ることができます。なんならそこからGoogle検索結果から旅行に行く計画を立て始めてもよいかもしれませんね。
前回のダッシュボードと合わせてあげると社員全員でどのくらい歩いたのか、チーム別にどのくらい歩いたのか、そしてどこまで行けるのか?ということが分かるようになったかと思います。
また、その先のWebページからうまく検索すれば行った気になる(?)ようなダッシュボードも作れそうです。チーム合計であれば、意外と海外にも行けそうということが分かったので、チーム対抗戦のダッシュボードを作って期間中に参照できるようにしてみてもよいと思います。