Tableau Tips:マップ上の任意の1点にクローズアップ(拡大表示)する方法
記事の目的
今回はTableauで地図を扱う際に実用的なTipsです。
(といいつつ、私は実務で地図を使わないので実用的かどうかは想像💦)
先日、Tableauのマップは”1点のみ”を表示した時に自動表示される”マップ範囲が広すぎる”という問題についてお聞きし、解決手段を模索したところ、意図通りの表示ができたので解説します。
前置き
通例ですが、Tableauボッチ使いが個人で検証した内容なので、より良い手段(ベストプラクティス)があるかもしれません💦
その際はコメント欄で教えて頂けるととてもありがたいです🙇
どんな場面で使う?
下のような”店舗リスト”と”地図”を一緒に表示するVizで、左側の店舗リストの1店をクリックした時に、地図でその店舗にクローズアップさせたいことがあると思います。
しかし、Tableauのデフォルト表示だと以下のように広大な範囲が自動表示されてしまいます😂
やりたいこと
店舗リストで選択した任意の点に対して、指定した範囲でクローズアップさせたい!ただし、常にその範囲という訳ではなく、複数選択した場合もイイ感じ(語彙力😂)に拡大表示させたい!
完成形はこちら(Tableau Publicからダウンロードできます)
キーワードは”見えない補助線”
表示させる原理
Tableauの地図は、2点以上が選択されている時は、その2点が地図上に入るように自動で表示範囲を決めてくれます。
しかし、1点のみの場合、Tableauさんが「どの範囲で地図を表示したらいいか、わからないです!」と言わんばかりにめちゃ広大な範囲を表示します😂
そこで、表示したい点(正確には選択した点の重心点)から”北東”と”南西”方向に一定距離離れた2点を生成(MAKEPOINT)し、その2点を結ぶ補助線(MAKELINE)を認識させつつ、その線を透明にするという方法です。
このラインのことを”補助線”と呼んでます。または”マジカルスティック”みたいなカッコいい名前で呼んでもらえると嬉しい(笑)
文章だけだと”ちょっと何言ってるかわからん”的な説明だと思うので、下の図で理解を深めてもらえるとありがたいです💦
設定方法
まずは、表示したい最小範囲(最大拡大時の範囲)のパラメータを作成します。単位は人間の感覚に合わせる為に”メートル”にしますが、あとの計算で、経度、緯度に変換します。(111,000メートル=1度)
※これはパラメータにしなくてもいいのですが、後の調整で便利です。
次に以下の計算フィールドを作成します。(これが”マジカルスティック”)
上記計算は、複数の計算を一気にしてるので、説明の為、順をおって計算式でやっていることを解説します。
※上記式に全て内包しているので、以下の計算フィールド作成は不要です。
①Viz上の点の中心(重心)の座標。1点のみの場合はその点そのものです。
②中心から北に[最大拡大範囲]m、東に[最大拡大範囲]mの点を作る。
※ざっくり「地球表面111,000メートル=緯度(経度)1度」としています。正確には緯度と経度方向で距離が若干異なりますが気にしない(笑)
③②同様に中心から南に[最大拡大範囲]m、西に[最大拡大範囲]mの点を作る。
④②と③の点を線で結ぶと”補助線”の計算式が完成。
この”補助線”を地図上に表示し、2重軸で元の地図に重ねた後、マークカードの”色”から透明度を0%にし、Viz上で見えないようにします。
ダッシュボード上に店舗リストと地図を配置し、店舗リスト⇒地図のフィルターアクションを設定します。(ろうとマークONでOK)
完成!
挙動確認
補助線(マジカルスティック)が見える状態で、いくつかのパターンを見てみると、”イイ感じ”に表示されていることが確認できます。
①多数の点を選択した時
②1点を選択した時
③離れた2点を選択した時
④非常に近い2点を選択した時
この方法以外にも、”すべての点に補助線を持たせる”や”あらかじめ決められた定点を仕込んでおく”などの方法も考えましたが、”計算量”と”範囲の汎用性”を考慮して、上記方法を選択しました。
最後に
解決する面白さもTableauの魅力の一つ
Tableauを使っていると操作の自由度の高さに驚きます。
半年前に使い始めた頃は、この”自由度”=”難しさ”になっていましたが、DATASaberBridge(以前の記事を参照)に参加したことで、”自由度”=”楽しさ”になってきました!
惜しげなく様々な技術を教えてくださる偉大な先輩の方々に感謝です!
他の学習でも同様ですが、やはり“チンプンカンプン”が、“チョットわかる”に変わる瞬間って、なんかイイですよね!
皆さんも良きTableauライフを!