🐙

Tableau 住所を地図グラフにプロットする

2025/01/12に公開

はじめに

住所をTableauで散布図のようにプロットする方法について解説します。
これで、グーグルマップのようにお気に入りのお店に⭐️とか❤️とかつけたりできちゃいます。

2年前のものですが、以下のコミュニティフォーラムの回答がそのまま使えます。
https://community.tableau.com/s/news/a0A8b00002HffKDEAZ/地図-日本の詳細な住所からtableauで地図を表示する方法

この記事の目的はまだ⬆️の方法が有効であるという情報の更新と、実際使ってみたらどうなるの?ってところをメインに書いていきます。
最新情報の保証はないので正しくは公式情報をご参照ください。

何をしたかったのか

完成品のVizからお見せします。

https://public.tableau.com/app/profile/go.hotino/viz/1_17338939823240/1_1

これは、私が普段から利用しているAnytime Fitnessという24時間ジムが23区内のどこにあるか?を示すダッシュボードになります。
(全国に1000を超える店舗を構えており、東京なら同じ区内にも複数個あったり・・スゴイ)
データは公式HPから住所を取ってテーブルデータの形式に書き加えたものを使っているのですが、ここで課題になるのは・・
「あれ、Tableauって住所そのまま可視化できるっけ??」
答えはNoです。Tableauであっても流石に僕の家の住所入れたら地図上から緯度経度を確認してここだ!ってやってくれるわけではない。ということです。

Tableauは緯度・経度を入れるのであれば、問題なくプロットしてくれます。
じゃあどうすれば、住所を使ってプロットできる程度に正確な緯度・経度を取れるんだろうか???

緯度・経度の取得

冒頭のコミュニティフォーラムに利用可能なサイトが複数載ってますが、私は以下がお勧めです。
https://geocode.csis.u-tokyo.ac.jp/home/csv-admatch/
住所が入ったテーブル形式のデータを読み込ませてあげれば、割とサクッと緯度・経度が入ります。
以下のような形で。(正しい住所は長いので抜いてます)

prefecture store_name city ward fX fY
神奈川 青葉台店 横浜市 青葉区 139.51765 35.54200
神奈川 あざみ野店 横浜市 青葉区 139.55229 35.56848
神奈川 磯子店 横浜市 磯子区 139.61604 35.39988
神奈川 磯子丸山店 横浜市 磯子区 139.62282 35.42175

ここまでできてしまえば、あとはTableauを使えば割となんでもやってくれる。

どう使うか?

早速可視化していきましょう。

そのまま入れてあげればこんな風に、正しく緯度・軽度が認識されます。
とはいえこのままでは、その星マークが一体どこにあるのかいまいちわからないので、ここからはいつもの地図グラフと同じです。

例によって区分け・ラベル付などしてあげると、先ほどプロットした星マークの下に地図上のどの辺か?も一緒に確認できます。

これを応用し、最初に紹介したAnityme Fitness店舗マップができています。

注意点

以上で基本的な使い方は終わりですが、最後に注意点。

  • 紹介したWEBサイトでの緯度・経度の抽出について
    全ての住所に対して、必ず座標を割り当ててくれるわけではないです。ためにうまく計算できなかったのか?座標が取れない住所があります。
    そうなった場合、NULLではなく0,0で追加されてしまうため、もし異常値なデータが存在していたら手動で書き足していけばいいと思います。
    人力ならGoogle Mapにも緯度・経度は記載されているので安心

  • 緯度・経度が正確なのかどうかわからない
    出力してもらった数値の羅列を見ても正直よくわからないです。なので、ここがどのくらいの緯度・経度で、何キロ離れると緯度・経度が動くのか理解しておくと早いです。
    「理解しておく」としていますが、ChatGPT等AIに聞けば一発で帰ってくるので安心。

    例えば・・

    Q.東京駅の緯度・経度を教えて
        A.東京駅の緯度・経度は以下の通りです:
        緯度(latitude): 35.6812362
        経度(longitude): 139.7671248 CopyRetryG
    
    Q.渋谷駅まで何キロで、緯度・経度はどのくらい変わるか教えて
        渋谷駅の緯度・経度は:
        A.緯度(latitude): 35.6580339
        経度(longitude): 139.7016358
    
        緯度の変化: -0.0232023 (約0.02度南へ)
        経度の変化: -0.0654890 (約0.07度西へ)
    
        直線距離は約7.1kmです。
        ちなみに、電車での移動距離は山手線で約6.8km、JR線を使った最短ルートだと約7.6kmになります。
    

    この通り、同じ23区内だったら-0.0~の世界でしか動きません。
    なので、これを外れるような値が入ってたらオヤ?と思うようにすればOK!

こんな風にして、Tableauで地図を作るというのは結構いいアイディアなんだと思います。
いつか、データ✖️地図のオリジナルVizで特定の領域でGoogle Mapを超えられるようなものを作りたいです。データも一緒に見たいこともあるしね・・

Discussion