Google Spread Sheetを利用した

地理空間情報フレームワークの開発

嘉山陽一
⚫ 一般社団法人 情報支援レスキュー隊(IT DART) 監事 
⚫ OSGeo.JP 運営委員 
⚫ OSGeo.org Charter member
⚫ 地理情報システム学会(FOSS4G 分科会)会員
⚫ QGIS  日本語GUI  マニュアル翻訳 コーディネータ
⚫ G空間研究所  フェロー   朝日航洋株式会社
⚫ Twitter ID @pokopen
⚫ Facebook https://www.facebook.com/yoichi.kayama
⚫ 一般社団法人 Code for Japan社員
自己紹介
2
2015年8月 一般社団法人情報支援レスキュー隊(IT DART)設立
3
4
昨年度開発システム
・JVOADからの要請で災害時に現地調査を行う先遣
隊からのレポートを電子的に行うシステムの開発
ITDARTで行った
・先遣隊メンバーがLINEで位置情報、テキスト、写
真、動画を投稿し、そのデータがGoogle Spread
Sheetに蓄積されるシステムを開発した
・投稿されたデータをWEBで地図上に表示するシス
テムを開発した
5
昨年度開発システム
6
本システムで投稿できるデータ

•位置情報

•テキスト

•写真

•動画

•音声メモ(テキスト化)

•ファイル(PDF,Word等)
7
調査システムの概要
• 入力インターフェースにLINEを利用

• 調査情報のテキストとIndexはGoogle Sheetに蓄積
される

• 静止画像、動画像、音声はDropBoxに保存。Link
がGoogle Sheetに記録される

• Google Sheetの情報を使って地図上に調査情報を
表示する

8
LINEのチャットボットシステム
• LINEではMessaging APIというユーザとのメッセージをプログラムで行
うAPIを公開している。

• このAPIを利用してユーザの投稿データを取得して現地報告データとし
てどこかに集約するシステムをつくることができる

• Herokuというクラウドサービス上に応答プログラムを設置

• LINEから送信したデータをGoogleSheetに蓄積

ChatBot
Program
Heroku
LINE
Google Sheet
9
Google Sheetを利用した

        インデックス

10
地図表示システム
GoogleSheetを参照した地図表示
調査情報の
位置表示と
表示
空撮写真の表示
11
昨年度システムの運用状況
•8月28日-   佐賀豪雨

•9月12日-     台風15号 千葉  

•10月12日-    台風19号  OneNagano

•10月25日- 台風21号関連豪雨
12
2019年8月 佐賀県豪雨
Drone Bird 空撮画像を
オーバーレイ表示
13
台風15号 千葉方面災害情報
朝日航洋空撮
画像オーバーレイ
14
台風19号 21号 災害情報報告

15
官民共同でのごみ撤去 One Nagano

16
One Nagano用ゴミ情報報告

17
One Nagano 情報報告

18
長野市千曲川周辺に大量のゴミ蓄積
(台風19号)
• 長野のゴミの状態だけを集める災害情報収集システ
ムの立ち上げを10月下旬に依頼され10月20日から
運用開始

• JVOAD先遣隊、現地ボランティア、内閣府、自衛隊等
のメンバがゴミの状況を本システムでレポート。場所ご
とに状況を要重機、要自衛隊、人力ボランティア作業
対応可に区分して報告

• 防災科研さんが当該データを利用してゴミ撤去作業の
計画地図を作成

• 10月下旬ー11月9日 One Naganoの名前で週末ごと
にボランティアの大量投入と重機、自衛隊で分担して
ゴミの撤去
19
昨年度システムの問題点
1.蓄積データ再利用時の問題点
2.航空写真等の追加時の問題点
20
蓄積データ再利用時の問題点
LINE蓄積データ → 1地点に複数の写真やテキストデータ
がリンク
LeafLetクライアント内で表データを1地点複数リンクに加工
Spread Sheetに蓄積されたデータを他のGISソフトウェア
(QGIS、ARCGIS等)でそのまま利用できない
21
一つの位置に複数の写真やテ
キストがリンクしている。
Google Sheet上では複数の行
になっているがLeafLetクライア
ント内で加工してまとめてい
る。
航空写真等の追加時の問題点
ドローンや航空機での撮影写真が災害時に公開される
LeafLetクライアントに公開写真のオーバーレイ表示ができるといい
オーバーレイ表示は可能だがプログラムコードを書き換える
必要がある
22
[
{ "name":"オープンストリートマップ", "protocol":"xyz",
"url":"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
"attribute":'&copy; <a
href="https://osm.org/copyright">OpenStreetMap</a>
contributors',
"minZoom":3 , "maxZoom":18, "zIndex":5 },
{ "name":"オープンストリートマップ", "protocol":"xyz",
"url":"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
"attribute":'&copy; <a
href="https://osm.org/copyright">OpenStreetMap</a>
contributors',
"minZoom":3 , "maxZoom":18, "zIndex":5 },
{ "name":"オープンストリートマップ", "protocol":"xyz",
"url":"", "attribute":"" },
]
表示レイヤはプログラムコードで管理していた
ユーザーからの改良要望
浸水想定区域、土砂災害警戒区域のデータを地図
にオーバーレイ表示してほしい
調査データの地図表示で調査員別、調査日別の
フィルタリングができるようにしてほしい
23
今年度改良作業
1.データ管理部分と利用クライアントの分離、疎結
合化
2.オーバーレイレイヤ情報をSheetで管理
3.データ利用部分のWEB API整備
4.認証モジュールの導入
5.LeafLet版クライアントの機能改良
6.QGIS用プラグインの作成
24
データ管理部分と

    利用クライアントの分離、疎結合化

従来はLeafLetクライアントからGoogle Spread Sheet APIを利用
してデータを読み込みしていた。そのためLeafLetクライアントか
らしか地図データにアクセスできなかった。
今回の改良でクライアントからデータを利用するWEBAPIを作成
した。
そのためWEBAPIを発行できるシステムならなんでも収集データ
や定義されているオーバーレイ地図を利用できる
25
オーバーレイレイヤ情報をSheetで管理

従来はオーバーレイする地図をクライアントのJavaScriptで管理していた。
Google Spread Sheet中にオーバーレイする地図を定義するシートを作成。オー
バーレイ情報はWEBAPIで取得できるようにした。
Spread Sheetの内容を書き換えればオーバーレイ地図の加除修正ができるので
オーバーレイの管理が楽になった。
またWEBAPIが発行できるクライアントならオーバーレイ情報を利用できる。
26
データ利用部分のWEB API整備

従来調査データはGoogle Spread Sheet APIで読みだしてクライアント
内で整形して地図データにしていた。
調査データをGeoJSONとして出力するAPIを作成したのでGeoJSONを
読めるクライアントならデータを利用可能になった。
(ただし一点に対して複数のデータがひもつく構造になっている。
GeoJSONの仕様では1点に対して配列で属性をもつことができるがク
ライアントで非対応の場合がある。その場合用に配列型のXMLや
HTMLでデータを帰すオプションも作成した)
27
認証モジュールの導入

現在調査データの入力はLINEで行っている。
認証用モジュールとしてLINEの認証を利用し、調査データ入力用BOTと友達
になっていないと地図利用部分も利用できないようなオプションも作成した。
地図モジュールの環境変数に認証モジュールのURLがはいっている場合の
み認証が必要な設定。
外部公開できないような場合のデータを扱う時の認証方法については他の
認証方法も含めて検討が必要。
28
LeafLet版クライアントの機能改良

表示データシートの指定ができるようにした。
認証モジュールの指定が可能にした。
調査員別データフィルタリング。
調査日別データフィルタリング。
オーバーレイシートの表示指定。
凡例表示機能の追加。
ポイントデータのクラスタ表示。
29
表示データシートの選択

複数のシートがある場合
シート名リストを表示し
て表示を選択可能
表示データフィルタリング

報告者別フィルタリング 調査日別フィルタリング
ポイントデータクラスタ表示
QGIS用プラグインの作成

QGISで定義データを読み込みプロジェクトに設定するプラグインを
作成。
URLを指定すると定義データを読み込む。
同一地図をQGISで利用可能。
32
Google Spread Sheetに定義し
たレイヤがリストされる
災害対策実証実験、道路修繕情報
収集、バリアフリー情報収集等での
試験運用
33
課題

・携帯電話の電波が届かない場合LINEが利用でき
ない
・バイナリベクトルタイルの利用の場合スタイル定義
がクライアントによって異なる
・認証が必要な場合の対応(現状はLINE認証を利
用)
・リアルタイムでのデータ更新の通知
34
まとめ

• チャットシステムとその蓄積、地図向けデータ定義と配信を
改良したら汎用的に利用可能なフレームワークができた

• Google Spread Sheetを基本部分に利用しているので短工
期でコーディングできた。またGoogle Spread Sheetが持って
いる高度な機能(データ共用、同時更新、編集、セキュリ
ティ)が簡単に利用できた

• 利用者がLineの利用になれていると利用のための障壁が低
い

• オフライン状態の場合の対策(クライアント側、サーバ側 
ローカルで簡単にサーバをたてる仕組み)が必要

• 災害情報収集だけではなく野外調査一般に利用可能

• 簡易に作成、管理ができる空間情報フレームワークとして利
用することも可能

35

Google Spread sheetを利用した地理空間情報フレームワークの開発