Tableau(タブロー)-地図-GeoJSONについて
| 空間ファイルの種類
Tableau(タブロー)から接続可能な空間ファイルには、シェープファイル、MapInfo、KML (Keyhole Markup Language) ファイル、GeoJSON ファイル、TopoJSON ファイル、および Esri File Geodatabases があります。
https://help.tableau.com/current/pro/desktop/ja-jp/maps_shapefiles.htm
今回、このうちのGeoJSONファイルを取り扱います。
| GeoJSON形式について
GeoJSON形式については下記の通りです。ジオメトリ属性には、ポイント(Point)、ライン(LineString)、ポリゴン(Polygon)などがあります。
Wikipediaより引用 https://ja.wikipedia.org/wiki/GeoJSON
{ "type": "FeatureCollection", "features": [ { "type": "Feature", "geometry": {"type": "Point", "coordinates": [102.0, 0.5]}, "properties": {"prop0": "value0"} }, { "type": "Feature", "geometry": { "type": "LineString", "coordinates": [ [102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0] ] }, "properties": { "prop0": "value0", "prop1": 0.0 } }, { "type": "Feature", "geometry": { "type": "Polygon", "coordinates": [ [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ] ] }, "properties": { "prop0": "value0", "prop1": {"this": "that"} } } ] }
| 国土数値情報のGeoJSONを確認してみる
https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-S12-v2_6.html
今回のサンプルは、GISホームページから、「駅別乗降客数データ」を活用してみます。なお、こちらのデータは「非商用」として使用許諾条件の記載があります。あらためて、確認・留意しておいてください。
上記zipファイルをダウンロードしますと、S12-18_GMLというフォルダが出来上がります。その中に、” S12-18_NumberOfPassengers.geojson ” ファイルがあります。こちらのファイルの中身の一部を整形してみますと下記の通りとなります。
- geometry type:LineString(ライン)が指定されております
- coordinates 経度, 緯度 で2点がラインで指定されている
- S12_001 〜 S12033 定義はこちらに記載あり
なお、上記の経度,緯度を試しにGoogle map で当てはめると下記の通りとなります。多少のズレがありますが、2点(駅の範囲)を線で指し示していることがわかります。
| 国土数値情報のGeoJSONをTableauで読み込む
下記の通り、S12-18_GMLフォルダ配下のS12-18_NumberOfPassengers.geojson ( 駅別乗降客数データ ) を読み込みます。
下記のS12_001 〜 S12_033の定義内容は、こちらをご確認ください。今回は、一番右の「ジオメトリ」が肝です。
それでは、ワークシートに対して、下記の通り、セットアップしてみます。そうすると、駅名(ここでは東京メトロ丸の内線)が円でプロットされると思います。
色を実際の地下鉄シンボルカラーにしたい場合は、下記色コードを参考にしてみてください。
参考)地下鉄のシンボルカラー https://www.colordic.org/m
| もう一つの国土数値情報のGeoJSONをTableauでファイル結合する
同様の手順で、今度は、「鉄道データ」を下記のURLからダウンロードして解凍してみます。このファイルは、場所(路線図)の情報をライン(LineString)で保有しております。
https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N02-v2_3.html
ZIPファイル解凍後、N02-19_RailroadSection.geojsonのファイルが確認できると思います。
そこで、このファイルを取り込んで、先ほどの、GeoJSONとファイル結合してみます。なお、ジオメトリとジオメトリの結合は今回は残念ながらできません。ジオメトリ同士で結合できるのは、現時点の2020.3 Verでは、Point(点)とPolygon(多角形)のみ、ということだそうです。
https://help.tableau.com/current/pro/desktop/ja-jp/maps_spatial_join.htm
| 結合後、駅と線路図を二重軸でビジュアライズ
まず、 列左側の経度(生成)を下記のようにマップを指定してセットアップします。
つぎに、 列右側の経度(生成)(2)を下記のように円○でセットアップします。
最後に、 列の経度(生成)同士を二重軸でレイヤーマップにします。これにより、「駅別乗降客数データ」から駅名情報を取得可能とし、また、「鉄道データ」から路線図を取得可能となりました。
なお、「駅別乗降客数データ」のS12_033 = 2017年の駅別乗降客数(人/日)というデータを持っておりますので、円◯のサイズに当該データを配置すると、◯の大きさが乗降客数となります。
| まとめ
今回は、空間ファイルの一つ、GeoJSONについて触れてみました。そして、空間ファイル同士の結合可能条件にも軽く触れてみました。地図を使用する場合は、実際はもっと高度な前提知識の理解が要求されると思います。地図と親和性の高い事業セクションでは、さらに踏み込んだ対応をしているかと思いますので、引き続き、弊社でも研究課題としていきたいと思います。