Fusion Tables×Google Apps Script（マッピング基礎編）

ここでは、Fusion Tables最大の特徴と言えるマッピングについて、『点でのマッピング』と『地域の境界でのマッピング』の基礎について記載します。

#点のマッピング
[title過去のFusion Tablesを取り上げた記事](http://a-auto50.blogspot.jp/2015/02/fusion-tablesgoogle-apps-scriptfusion.html)の中で、下の画像のようなマッピングを行いました。
![マッピング01.jpg](https://qiita-image-store.s3.amazonaws.com/0/82305/d66d698c-5e70-98e2-b65a-ecf1f2cec0f0.jpeg)

このFusion Tablesに入っているデータは都道府県名と人口の数値だけが入っているシンプルなものですが、特別な操作をしなくともマッピングされていました。
これは、都道府県名を位置情報として認識しているわけではありません。
Fusion Tablesのカラムには"Location"という型があり、その型で定義されているカラムの値を位置情報として認識します。
そして、Fusion Tablesでは"東京"や"大阪"など、特定の地名を"Location"として定義したカラムに入れると、その文字から点で表せる位置情報に変換してくれるようになっています。
このため、特に意識せずとも都道府県を点で表示したマッピングが行われます。

お手軽にマッピングができる素晴らしい機能ですが、やはりマッピングするのであれば、地域の境界ごとに色分けしてみたいですね。
ということで、次は境界を用いたマッピングについて書いていきます。

#地域の境界ごとのマッピング
"Location"に入れられるデータは、地名の文字列だけではなく、"KML"という形式のデータを挿入することができます。この"KML"という形式のデータが、地域の境界を表すデータとして機能します。
そのため、地域ごとで区分したマッピングをするには、大まかに以下の手順を踏むことになります。
1. 地域ごとの位置情報データを入手する
2. 位置情報データをKML形式にする
3. KML形式のデータをFusion Tablesにインポートする

位置情報のデータは形式が様々で、KML形式のデータもあまり多くはありません。
ただ、KML形式以外の位置情報のデータを、KML形式へ変換するツールはフリーでいくつかありますので、まずは位置情報のデータを入手し、そのデータを変換し、最終的にFusion Tablesにインポートするという流れが今のところ一番楽だと思います。
（Fusion TablesはKML形式のインポートをサポートしているので、最初の手順のデータ入手が一番苦労するところかもしれません）

参考までに、私が都道府県の境界ごとの色分けをする際には、位置情報データは以下のサイトからいただきました。
http://itochiriback.seesaa.net/article/245436179.html
（Shapeファイル形式なので、ダウンロード後に変換する必要があります）

Shapeファイル形式からKML形式への変換には"QGIS"というツールを利用しました。こちらは調べれば情報はたくさん出てきますので、利用方法は割愛します。

都道府県のKML形式データをFusion Tablesにインポートすると、次のようなテーブルになりました。
![マッピング02.jpg](https://qiita-image-store.s3.amazonaws.com/0/82305/31b1a2a3-4c27-69fd-c616-656a8bd3c7c0.jpeg)

"geometry"カラムに境界のデータが入っています。一応"ObjName_1"カラムも位置情報として変換できるのですが、今回は不要なので変換しません。

では、ここでタブの"Map of geometry"からマッピング結果を見てみましょう。
もしもタブが追加されていなければ、タブの右端の"+"から"add Map"をクリックすることで、マッピング結果を見られるタブが追加されます。
![マッピング03.jpg](https://qiita-image-store.s3.amazonaws.com/0/82305/886904bc-850a-a264-00a0-9001bb90ce49.jpeg)

まだ色分けこそされていませんが、"点"ではなく、"面"で色がついた地図が出てきました。
![マッピング04.jpg](https://qiita-image-store.s3.amazonaws.com/0/82305/92cdbc7a-2660-f34b-14fe-e3cfd5489d64.jpeg)

次はデータに応じて色分けをできるように設定しましょう。画面右の"Change feature styles..."ボタンをクリックすると、色分けの基準を設定する画面が開きます。
![マッピング05.jpg](https://qiita-image-store.s3.amazonaws.com/0/82305/b5a5083c-ad1f-57f9-8f7b-48052d497000.jpeg)

![マッピング06.jpg](https://qiita-image-store.s3.amazonaws.com/0/82305/3ce5cac8-65a9-4790-5c48-ea1158d70c98.jpeg)

デフォルトの設定だと、特にデータを参照せずに、全ての位置情報を赤に着色するようになっています。
画面から"Bukets"を選択すると、基準となるカラム、色の区分の数、基準となるカラムの範囲、色を設定することができます。

例として次のように設定してみました。
・基準となるカラム：JIS-CODE
（インポートしたデータに入っていたカラム。都道府県のID?らしきデータが入っています）
・色の区分の数：4
・基準となるカラムの範囲：48を最大とした自動判別
・色： 1　　～ 12.75　⇒ オレンジ
　　　12.76 ～ 24.5　 ⇒ 黄色
　　　24.6　～ 36.25　⇒ 緑
　　　36.26 ～ 48　　 ⇒ 水色
![マッピング07.jpg](https://qiita-image-store.s3.amazonaws.com/0/82305/1496ff1a-0334-51ab-ab69-9ffc7b522c7d.jpeg)

設定を終えると、設定した通りのマッピング結果が表示されます。
ちゃんと地域の境界ごとに色分けがされています。
![マッピング08.jpg](https://qiita-image-store.s3.amazonaws.com/0/82305/35dab02b-09b8-3150-bba5-8bc15fa9087c.jpeg)

これで地域の境界ごとでマッピングすることができましたが、1つ課題が残っています。

今回は色分けする基準として、あらかじめKMLファイル内に入っていたカラムを利用していますが、普通は自分で用意したデータを色分けの基準にしたいはずです。
KMLファイルを加工して、色分けの基準となるデータを追加すればできないこともありませんが、マッピングのたびに加工をしようとするとかなり手間がかかります。
この点ある条件を満たしていれば、その手間をかなり減らすことができるのですが、それは次の機会に記載します。

ここでは紹介していませんが、色分けの方法も『グラデーションにする』、『基準となるカラムの範囲を自分でカスタムする』など、見せ方や区分の仕方はたくさん用意されているので試してみるのも面白いと思います。

以上