Kohei Blog

夫・父親・医療系エンジニア

【Tableau】緯度経度で一定位置から範囲内のデータをフィルタさせるパラメータアクション

f:id:kei_01011:20210609061152p:plain

商圏分析をやる機会があったので、Tableauで実装する手段をまとめてみる

地図上のポイントをクリックすると、そのポイントから指定範囲内(画像では1km)のポイントに色付け 範囲内の事業所をフィルタリングして集計することもできる。

仕組みとしては、 カーソルを当てたポイントの緯度を「指定緯度」というパラメータに代入 カーソルを当てたポイントの経度を「指定経度」というパラメータに代入

ダッシュボードの「パラメータアクション」を作成し、 「指定緯度」と「指定経度」とそれぞれのポイントの距離を計算して距離に応じて色を変更する

サンプルVIZ

使えそうな緯度経度の情報がなかったので、ここではOsaka Free Wi-Fiのアクセスポイントを可視化してみた。

www.pref.osaka.lg.jp

パラメータを作成

指定緯度、指定経度は、デフォルトの数値なので、登録するのはなんでもいい。

f:id:kei_01011:20210608185145p:plain

後から距離を指定できるようにしたいので、距離用のパラメータを作成。

f:id:kei_01011:20210608185236p:plain

計算式「距離」を作成

カーソルを当てたポイントの(緯度,経度)とそれぞれの(緯度,経度)の2つをmakepointでラップ、 DISTANCE関数で距離を求める

’m’や’km’の単位をここで指定する。

DISTANCE(
makepoint([指定緯度],[指定経度]),
[#makepoint],
'km'
)

距離判定用の計算式の作成

IF [#距離] = 0
THEN '指定ポイント'
ELSEIF [#距離] <= [距離指定]
THEN '範囲内'
ELSE  '範囲外'
END

それぞれのポイントが、範囲外なのかを判定する計算フィールド

距離のフィルタ

[#距離] <= [距離指定]

地図上のポイントをクリックしたら、他のシートにも指定範囲内でフィルタをかけたい。 上記のサンプルでは、WIFIのアクセスポイントの地図をクリックしたら、その範囲にあるアクセスポイントの詳細が下部分の表にフィルタリングされる。

パラメータアクションを作成

緯度、経度 それぞれのパラメータアクションを作成する。

クリックしたポイントの緯度経度で、パラメータを上書きする。

f:id:kei_01011:20210609060359p:plain

f:id:kei_01011:20210609060426p:plain

これで、マウスを当てたポイントから指定した距離範囲内のポイントについて色を変えることができる 指定した範囲内に存在する顧客数(患者数)を集計したり、商圏分析に利用できる。

BAFFAを使った可視化の方法とかは別途記事にしてみます。