Instreetgram – GPS + Street View + Instagram

ちょっとした実験. 「Streetgram」「Instreetgram」というiPhoneアプリを作ってみました.

(Streetgramというサービスがすでに存在したので名前をかえました)

自分が見た「かもしれない」風景の「写真」がたまっていくアプリです.

具体的にはGPS情報をもとに、自動的に自分がいる場所のGoogle Street Viewから写真を切り出してInstagramに投稿し続けるアプリ…. のはずだったのですが、結果的には「GPS情報をもとに、自分がいる場所のGoogle Street Viewから画像を切り出し、Instagram風のフィルターをかけてFacebookにどんどん勝手にアップしていくアプリ」になりました. アプリが閉じているときもバックグラウンドで動き続け、滞在した場所の写真をアップロードし続けます. 何気ない日常の風景がInstagramのフィルターとSNSのタイムラインを通ってシェアされたときに、特別な意味を持つようになる / 自分の生活や行動が自動的に写真として記録されていく面白さ. そんなことを考えながら作ってました.

例えば僕の生活はこんな感じで記録されてます (ダミーのアカウントで試しています)
https://www.facebook.com/ikuto.ona
http://instreetgram.tumblr.com

559188 109008445931141 2038954992 n

74748 105717569593562 1330698504 n

「Street Viewの写真を撮る」際のフレーミングは完全にランダムなのですが、無作為の面白さを感じます. 闇雲にシャッターを押してみたら意外といい写真が撮れた、そんな感じでしょうか. 自動で「撮影」されたStreet Viewの写真をInstagramに流したら、どんな反応が返ってくるか… 興味深いですよね. (写真投稿のAPIが公開されていないため、Instagramへの投稿はひとまずあきらめました)

あとで写真を見直してみると、なんとなく見覚えがあるようなないような…
実世界での自分の生活. そのネット上の表現としてのSNS. その上に流れるのが、実世界の行動にあわせて撮影された写真としてのオンラインの画像データ. この複雑なレイヤーの重なりが面白いと思ってます.

プライバシーの問題やGoogle Street Viewの画像の権利など、突っ込みどころ満載なので、一般にリリースすることは考えていません. あくまで実験ということで (ちなみに、自宅の周辺半径1km以内では投稿にしないようにしてます).

このアプリを作るきっかけは、先週たまたまDronestagramさんのInstagramに出会ったことです. Dronestagramは、その名の通り、米軍の無人爆撃機(Drone)から見た風景をInstagramにあげていくというプロジェクト.

たとえば、2012年10月11日のポスト.

Ob297 – October 11 2012 / 16-26 reported killed / 5-15 reported injured / Possible civilian casualties (at Buland Khil, Pakistan)

このパキスタンでの爆撃で16-26人が死亡、その中には民間人も含まれるという.

もちろん、爆撃機からInstagramの写真を撮っているわけではありません(そもそもパイロットが搭乗していないので撮りようがないですよね). ジャーナリストが調査した空爆の情報(緯度経度、時間、爆撃の結果)をもとに、Google Mapの衛星地図から「爆撃機にパイロットが乗っていたら上空から見たであろう景色」を切り出し、Instagramに投稿する仕組みになっています. 詳細はこちらを参考にしてください.
http://booktwo.org/notebook/dronestagram-drones-eye-view/

日常生活のステキな瞬間を切り出し、ステキに演出して共有 – そんなInstagramの情報の流れの中にこれらの写真が置かれたときに、そのコントラストの強さにはっとさせられました. 上空からの美しい風景とそこで流されたであろう無辜の血. Instagramのフィルタで「いい感じ」になっているGoogle Mapの衛星写真に何とも言えない感情を抱きました.

このプロジェクトから学んだこと.
1. 普段使っているサービスの上にまったくコンテクストの違う情報がのっかったときの面白さ
2. 写真として切り出されたネット上の画像データの新鮮味
をベースに作ってみました.

技術的なところで言うと、バックグラウンドでのネットワーク処理に手間取りました.
Info.plistでUIBackgroundModesにlocationを追加することで、バックグラウンドでも位置情報の更新を受け取れるようにはなったのですが、その後のネットワーク処理(画像のダウンロード/フィルタ/アップロードとGeocoding)で止まってしまってうまくいきませんでした.
結局UIBackgroundTaskIdentifierを使う必要があることがわかりました. ご参考まで.

 

追記: バックグラウンドに入ってから時間が経つとアプリがkillされてしまうことが多く、通常のCoreLocationのLocation Updateの仕組みだけではうまくいかないことがわかりました。

Significant Location Change

の仕組みを使う必要があるようです.