Feltを使って座標付きデータ(写真)の管理・共有
以前、現場の人達が撮ってくるたくさんの写真のデータを地理空間的に管理し共有したいのだけれどいいやり方はありませんか、という相談を受けました。そのような問題に対する解決方はいろいろとあると思いますが、今回はFeltとクラウドストレージを使ってやってみました。
Feltの写真張り付け機能
Feltとはウェブブラウザ上のダッシュボードで地図を作成・共有できるクラウドネイティブなGISプラットフォームです。
https://felt.com/
Feltの機能の一つに写真などのデータを地図上の好きなところに貼り付け、直感的に地図を作成、編集、カスタマイズできるというものがあります。

さらには座標データ(exif)付きの写真ファイルであれば、その写真を撮った地点に自動で移動させることができます。
まずexif付きの写真をFeltに直接ドラッグ&ドロップします。すると画面上部に「Move to location」というボタンが出てきます。これをクリックしますと写真は添付されました座標に自動で移動されます。この機能を使って各地で撮られた写真を管理し、何処で何があり、どんなことが起きているかなどの情報をグループ内で共有したりできます。

この写真の貼り付けの作業は地図の編集権限を持ったユーザーのみが行うことができます。そのため、たくさんの写真が色々な人から集まるような状況では少し工夫する必要があります。
クラウドストレージを使った地図への写真張り付け
そこで今回はクラウド上に皆がデータをアップロードできるストレージを用意して、そのデータが自動でFeltの地図に反映される方法を模索してみました。写真を持ち寄る人達は各自がそのクラウドへアップロードすれば地図にデータが反映されるようになります。
使ったのはAmazon Web Service (AWS)のS3です。そこに写真をアップロードして、それぞれの写真にurlを持たせます。このurlをFeltに読み込ませて表示、とやっても実はうまくいきません。これらの写真を一度AmazonS3内でGeoJSONファイルとしてまとめる必要があります。このGeoJSONファイルのurlをFeltに読み込ませればそれぞれの写真のurlが属性値として付いた点データとして表示されます。地図の編集権限者は最初にこのGeoJSONファイルをFeltで指定するだけなので、毎回編集者がデータをアップロードする必要がなくなります。

そうして表示された地図上の点にカーソルを重ねる、もしくはクリックすれば写真が見られるという形になります。

あとはこのGeoJSONファイルが自動で更新され、AWS S3にアップロードされた写真を全てのurlと座標をリストアップするように設定します。S3のあるAWSにはそのような設定が他のサービスも充実しています。今回はAWSのLambdaをS3とリンクさせ、S3内の特定フォルダにある写真を全てスキャンしてもらい、座標とurlをJSONファイルにリストアップするというコードを用意しました。それをAWSにある別のサービスのAmazon EventBridgeで一定時間ごとに実行してもらうという方法を取りました(このやり方の詳細を書くと長くなりますのでここでは割愛します)。このコードを用意しS3、Lambda、EventBridgeを連携させるのは多少苦労しましたが、一度用意してしまえば今後はAWS S3にある写真を変更するだけで自動でGeoJSONファイルに登録され、Feltの地図に反映されます。またこのコードを今後別の地図でも使いまわすこともできます。
最後に
今回はFeltの機能というよりは、AWSの機能を使った試みという感じですが、やはりFeltの色々なデータを地図上に表示しweb上で共有できる機能があってのものです。他にも様々なウェブサービスとリンクし、工夫次第でとても便利な使い方がまだまだありそうです。
Feltの導入・業務での活用にご関心がある方は、Feltの日本国内パートナーである Pacific Spatial Solutions までお気軽にご相談ください。