Foss4g2009tokyo Miyashita Osaki Sekai Camera

Post on 27-Jan-2015

116 views 3 download

description

FOSS4G 2009 Tokyo(フォスフォージー2009東京)-フリー&オープンソースGISの祭典-http://www.osgeo.jp/foss4g2009-in-tokyo/2009年11月1日(日) ~ 2日(月)

Transcript of Foss4g2009tokyo Miyashita Osaki Sekai Camera

セカイカメラにおけるGeoデータの取り扱いに

ついて頓智・大崎&宮下

セカイカメラって何?インジケーター空間中のエアタグの位置や位置精度などの情報を表示。

ランドマークタグ駅、ビル、店舗など主要なランドマークを表示。

エアタグ テキスト、写真、音声などをその場所に記録することができる。タップで詳細情報を表示。

リリースしてから

• 9月24日 バージョン1.0.1 リリース

• 9月27日 10万ダウンロード突破

• 10月13日 バージョン1.0.2 リリース

• 10月31日 バージョン1.0.3 リリース

利用状況

利用状況

人気のある場所

•秋葉原•渋谷•自由が丘

•新宿•表参道

Geoデータの種類

• エアタグユーザーが投稿した情報

• ランドマークタグ他社さんがAPIで提供してくれる情報ヤフーさんのローカルサーチAPI

エアタグ• テキストタグ

• 画像タグ

• 音声タグ

• どれもPOIのみ、現在のところ面積や体積をもった情報は取り扱ってない

データの置き場所• PostGIS

Geo系の永続データ

• memcache一時的なデータ(Geo系も含む)

• ストレージサーバー画像や音声を保存(Geo系はなし)

システム構成(超大雑把)

iPhone AP PostGIS

memcacheconnectionnotice

エアタグの保存

• iPhoneからAPへポスト

• APからPostGISへ保存

エアタグの配信• iPhoneから周辺データ取得リクエスト

• APがmemcacheに存在するか確認

• あればデータ返信、なければPostGISからデータ取得

• PostGISからの返信データはmemcacheへ保存する

キャッシュ化

• 内容はPostGISからの返信データ内容

• Keyはエリアメッシュを表す文字列

エリアメッシュとは• あるメートル間隔で地球を埋め尽くすメッシュのようなもの

• 1メッシュは4組の緯度、経度(レクタングル)で表現

• 緯度毎にメッシュの面積がなるべく同じになるように経度幅を工夫して算出

エリアメッシュ必ずしもちゃんと格子状に並ばない緯度の行毎に経度の列と幅はずれる

本当はこうなってほしいが無理実際の所を

極端にするとこんな感じ

実面積はだいたい均一になる(はず)

エリアメッシュを使うと

• ある点を、隙間ないメッシュと対応づけられる

→ Key-Value化しやすくなる

• エリア内外判定が行える → iPhoneからデータを取得するタイミングを現在のエリアを出た時に出来る(APをポーリングしなくてよい)

• ある地点の近隣のエリアメッシュを算出できる→ 近隣エリア内にいるユーザーの判明に利用

エアシャウト

• 近隣でログインしている人に対して配信するテキストメッセージ

• その場、その時でないと見ることはできない

大雑把な流れ

iPhoneuserA

connectionnotice

memcache

AP

iPhoneuserB

常時接続サーバに現在地を通知 現在地のエリアメッシュ保存

大雑把な流れ

iPhoneuserA

connectionnotice

memcache

AP

iPhoneuserB

(1)シャウト投稿

大雑把な流れ

iPhoneuserA

connectionnotice

memcache

AP

iPhoneuserB

(2)投稿通知

大雑把な流れ

iPhoneuserA

connectionnotice

memcache

AP

iPhoneuserB

(3)投稿者の近隣エリア計算近隣ログインユーザー解決

大雑把な流れ

iPhoneuserA

connectionnotice

memcache

AP

iPhoneuserB

(4)シャウト取得指示

大雑把な流れ

iPhoneuserA

connectionnotice

memcache

AP

iPhoneuserB

(5)シャウト取得

以上です

ありがとうございました