Tableauの強力なマッピング機能を利用すると、地図上にデータが表示された魅力的な地図を容易に作成することができます。
本ページでは緯度経度情報を利用して地図上にデータをマッピングする方法を紹介します。
Tableauがサポートする地理情報
Tableauでは、データに都道府県や市区町村、郵便番号等のサポート対象の地理情報が含まれていれば、緯度経度を自動で生成して地図を作成してくれます。
一方でサポート対象外のデータ、例えば住所や特定のスポット名等に関しては、Tableauが地理情報として認識しないので一見お手上げのように思えますが、緯度経度情報さえ用意できれば地図上にデータを表示できるようになります。
Tableauがサポートする地理データの一覧はこちらをご覧ください。
緯度経度付きデータを利用したマップ
実際に例を用いて表示してみます。
緯度経度付き地価公示データを利用して、東京都の各駅の地価を地図上に表示してみましょう。
【完成図】
以下のようなVizを作成します。
データの準備
国土交通省の国土数値情報ダウンロードにアクセスします。
「テキスト」タブを開いて「国土(水・土地)」を選択して、都道府県地価調査(ポイント)をクリックします。
最新の東京のデータをダウンロードします。
ダウンロードしたファイル(L02-2020P-13-01.0a.zip)を解凍すると以下のようなファイルが作成されます。
今回はこの中のcsv形式のファイル(L02-2020P-2K_13.csv)を利用します。
ファイルの中身を見てみると以下のようになっています。
東京の様々な調査地点が各行に相当していて、緯度経度情報、住所、駅名、昭和58年から令和2年(最新)までの地価公示額等のカラムで構成されています。なお、各カラムの詳しい定義や説明は同梱のhtmlファイルで説明されています。
マップ作成
データが準備できたら実際にマップを作成します。
- 手順1緯度経度情報の変換
- 手順2地図上にプロット
- 手順3地図情報を追加
1. 緯度経度情報の変換
Tableauを起動して「接続」-「テキストファイル」 を選択、ダウンロードしたcsv形式のファイルを読み込みます。
データが正しく読み込まれているようです。
今回の緯度経度データをよく見てみると、表現形式が「秒形式」であることが分かります。Tableauでは「度単位」の緯度経度を扱うため、単位を変換する必要があります。
変換方式は簡単です。緯度経度をそれぞれ3600で割るだけです。
緯度の変換式を定義して、「度単位 緯度」という名称で計算フィールドを作成します。
経度も同様に、「度単位 経度」という名称で計算フィールドを作成します。
計算フィールドが作成できたら、データペインの「度単位 緯度」を右クリック、「地理的役割」-「緯度」を選択して、地理的役割を持たせます。
データペインの「度単位 経度」も同様に設定して、地理的役割を与えます。
Tableauで扱う緯度経度の表現形式は「度単位」です。「秒形式」の緯度経度であれば3600で割って度単位に変換する必要があります。
2. 地図上にプロット
いよいよマッピング開始です。
データペインの「度単位 経度」を列に、「度単位 緯度」を行にドラッグ&ドロップします。
ビューに地図が表示されました。
駅毎にプロットしたいので、データペイン「駅名」をマークの詳細にドラッグ&ドロップします。
データに存在するすべての駅がプロットされました。
最新の地価をシンボルの大きさで表したいので、データペインの「R2価格」をマークのサイズにドラッグ&ドロップして、「メジャー」-「平均」を選択します。
以下のようになります。
24区の真ん中あたりが高価な様子が見えてきました。
3. 地図情報を追加
最後に、場所がもっと容易に分かるように地図上の情報を追加します。
メニューの「マップ」から「マップレイヤー」を選択します。
マップレイヤーの編集ペインでバックグランドのスタイルを「標準」設定、マップレイヤーの「郡境」と「郡名」のチェックを追加します。
完成しました!
皇居周辺の銀座、東京駅、大手町の地価が高いことが分かります。
以上のように、Tableauでは緯度経度情報さえ用意できればマップ上にデータを表示できるようになります。
経度緯度情報がない場合の対処法
上記のようにTableauでサポートされている地理情報がデータに含まれていれば、問題なくマップを作成することができますが、そうでない場合はどうしたらよいでしょうか?
例えば、住所(例:東京都千代田区丸の内1-1-1)や特定のスポット(例:東京駅)や施設(例:東京ディズニーランド)などの名称はTableauでは地理情報として認識されません。
そのような場合には、住所や地名といったテキスト情報を経度緯度などの座標情報に変換する「アドレスマッチング」とか「ジオコーディング」などと呼ばれる技術を活用すると解決できるかもしれません。
以下にジオコーディングを利用した無料のサービスを3件紹介します。
geocoding
ひとつめはGoogleのgeocodingというサービスです。
住所やランドマーク名を入力すると、経度緯度座標に変換してくれるサービスです。

APIもあるようなので、プログラムで自動化してまとめて変換することもできるようです。
CSV Geocoding Service
ふたつめに紹介するのは東京大学が公開しているcsvアドレスマッチングサービスです。

このサービスは、住所や地名フィールドを含むCSV形式のファイルをネット上で入力すると、緯度経度情報を追加して出力してくれるサービスです。
Python版のジオコーダやサーバもオープンソースとして公開されているようです。いずれも無料で利用することができます。
Nominatim API
みっつめはNominatimという、OpenStreetMapのデータを利用したサービスです。

APIとして提供されているので、Pythonのプログラムなどから呼び出して一括処理することが可能です。ただし、商用利用や大量リクエストは禁止されていて、1秒に1回以下のリクエストが推奨されています。
本ページでは緯度経度情報を利用して地図上にデータをマッピングする方法を紹介しました。

