世界地図のポリゴンデータを使ってYellowfinでマップグラフを表示する

[Yellowfin](https://yellowfin.co.jp)には[GISマップ](https://wiki.yellowfin.co.jp/pages/viewpage.action?pageId=2293881)の機能があり、GISデータ(ポイントとポリゴン)を地図に描写し、レポートデータに重ね合わせることができます。
ただし、前提条件としてGISデータを準備してデータベースに格納しておく必要があります。

この記事では、世界地図のポリゴンデータを準備して、Yellowfin上で国別に色分けして表示する方法をご紹介します。

# 世界地図のポリゴンデータの入手

[Nature Earth](https://www.naturalearthdata.com/)というサイトで提供されているデータを利用します。
[Terms of Use](https://www.naturalearthdata.com/about/terms-of-use/)には以下の記述があり、自由に利用することができるようです。
>All versions of Natural Earth raster + vector map data found on this website are in the public domain. You may use the maps in any manner, including modifying the content and design, electronic dissemination, and offset printing. The primary authors, Tom Patterson and Nathaniel Vaughn Kelso, and all other contributors renounce all financial claim to the maps and invites you to use them for personal, educational, and commercial purposes.

今回は[Downloads](https://www.naturalearthdata.com/downloads/)にある[Medium scale dataのCultural](https://www.naturalearthdata.com/downloads/50m-cultural-vectors/)を選択します。
![ne.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116818/8886763f-53dc-ee98-c715-06563ffccb3d.png)

**Download countries**を選択してファイルをダウンロードしました。
![nec.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116818/381b435e-693f-de2b-c022-8cf642a359f5.png)

# QGISのインストール

ダウンロードしたのは**シェープファイル**と呼ばれる形式のデータです。
シェープファイルはGISツールで幅広く使用されている一般的な形式ですが、そのままだとYellowfinでは使用できないため、何らかの手段でデータベースへ投入する必要があります。
そこで、今回は[QGIS](https://qgis.org/ja/site/)というオープンソースのGISツールを使用して、ひとまずCSV形式へ加工することにします。

[QGISのダウンロードページ](https://qgis.org/ja/site/forusers/download.html)から自分の環境に合ったものをダウンロードし、手順に沿ってインストールしてください。
![qgis.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116818/b0261c0a-a1ef-19c2-e3be-f99a1602c124.png)

# QGISを使ってシェープファイルをCSVにエクスポート

ダウンロードしたZIPファイルは解凍しておきます。
そして、QGISを起動して、解凍した中にある **.shpファイル** をQGISへドラッグ＆ドロップするとシェープファイルを読み込むことができます。
![qgis_dr.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116818/a8bd63b8-69db-c93e-0cc9-faba42406219.png)

CSVにエクスポートするには **レイヤを右クリック＞エクスポート＞新規ファイルに地物を保存** と進みます。
![qgis_exp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116818/d20bba07-a0c2-6003-b3dd-122d5159432c.png)

ファイル名をつけて保存します。設定項目がいろいろありますが、今回は**GEOMETRY**を`AS_WKT`にしておけばOKです。
![qgis_pref.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116818/b0783a0e-1827-fc5f-31d2-d94169e32a50.png)

# CSVをデータベースに投入する

エクスポートしたCSVは、以下のようにマルチポリゴンの情報に加えて、国名やISO国コードなどが含まれています。
![wkt_csv.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116818/3af3796e-9fd6-75d7-a47f-7f641b48f51e.png)

このCSVファイルを、Yellowfinから接続するデータベースに何らかの方法で投入します。
特に方法は問いませんが、今回はYellowfinのトランスフォーメーションフローの機能を使用しました。
![tf.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116818/b870da93-ae33-88ef-8991-7bdab0708900.png)

# Yellowfinでビューを作成

上記のデータベースをデータソースとして、新たにビューを作成します。
今回は`WKT` `ISO_A2` `ISO_A3` `NAME_EN` `NAME_JA` のカラムを有効にしました。
![yv.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116818/33bf7bf6-1244-7559-563b-ea4e72410d6b.png)

`WKT`のカラムはコンバーターを使ってYellowfinのGISマップが使用できる形式に変換します。
![hen.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116818/467dde6c-ff5b-c1e9-ee5b-e16571f3f8f1.png)

コンバーターの種類は `WKTジオメトリーコンバーター` を選択します。
![wkt.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116818/d59b39c6-e872-24db-47a3-7aa53d7b7b6b.png)

テキストフォーマットは　`経度/緯度` を選択します。
![ik.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116818/aef9d2e8-a600-1064-7e0d-d54bb533ca9d.png)

`WKT`のデータプレビューが **GIS MultiPolygon**　という表示に変わればOKです。
![geop.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116818/c32e2cdb-d713-915e-ad12-aab9f95462c5.png)

# Yellowfinのマップレポート作成

あとはYellowfinで先ほどのビューを使用してレポートを作成するだけです。
グラフの種類で **GISマップ** や **GIS Googleマップ** などを選択して、ジオフィールドにポリゴンのデータ（今回の例であれば`WKT`のカラム）を指定すれば、地図を描画できます。
![ma.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116818/b613a2b0-4925-d05a-3a95-0ddfaf3cc7f8.png)