この記事の趣旨
- Tableau Data Saberの課題の一貫で、Viz投稿(ダッシュボード制作)を行う必要がありました
- せっかくなら自身の関心のある分野で可視化をしようと考え、趣味のトレイルランニング(山を走るアウトドアスポーツ)のレースコースなどを描画するダッシュボードを作成しました
- 今回含め全3回で、Tableauを用いてKMLファイル(地図データ)を描画する方法をご紹介していきます
前2回の記事
5.レース情報のテーブルと地図データをリンクさせる
5-1.地図とレース情報のシートを整える
- 「地図」ワークシートでKMLファイルから地図を描画し、「レース一覧」ワークシートでレース情報を描画します
- 「レース一覧」では、開催時期や開催都道府県で絞り込みをするために、フィルターを表示しておきます
5-2.ダッシュボードアクションを設定する
- ダッシュボードに2つのワークシートを投入し、同時に見られるようにします
- 「ダッシュボード」→「アクション」→「アクションの追加」から「フィルター」を選択し、ダッシュボードアクションを設定します
- 「ソースシート」は「レース一覧」、これが「選択」されたときに、両方のシートで「すべての値を表示」に設定することで、選択されたレースの地図にズームすることができます
6.Webページを表示する
6-1.「Webページ」オブジェクトを挿入する
6-2.Webページ表示のダッシュボードアクションを設定する
- 「ダッシュボード」→「アクション」→「アクションの追加」から「Webページ遷移」を選択し、ダッシュボードアクションを設定します
- それぞれのシートで選択された際、「Webページオブジェクト」で、レース一覧の「Webページ」に記載があるURLのページに遷移するように設定します
完成!
7.残課題の整理
7-1.距離の自動計算
- Tableau上では、緯度、経度、標高などからルートの距離を自動的に算出することは難しかったです
- 今回は事前にレースコースの距離がわかっていたため、レース情報に事前に入力しました
- KMLファイル(やGPXファイル)から自動算出する仕組みを構築し、それをレース情報に付与するようなシステム構築が必要そうです
7-2.標高データの描画
- こちらも、Tableauに単純にKMLファイルを読み込ませるだけでは不可能でした
- 標高のデータを別で作成しておいて、それをレコード順にヒストグラムのように並べることで可能になりそうです
7-3.処理の軽量化・データ構造の改善
- KMLファイル1つずつを読み込ませると、Tableauの動作が非常に重くなる。データ構造を改善する必要がありそうです
- 経度、緯度、標高、レース名(レースID)のような4カラムを作り、ユニオンする?ような、Tableau外での前処理を実装する必要がありそうです
今回のまとめ
- Tableauでレースコースを描画するために、KMLファイルとレース一覧のワークシートをダッシュボードに統合した
- レース一覧の各レースを選択すると、ルートとWebページが表示されるよう、ダッシュボードアクションを設定した
- 自動的な距離や標高の描画、データの軽量化は課題として改善したい