ロケタッチの裏側
- 1. ロケタッチの裏側
株式会社ライブドア
開発部 吉川英興
http://tou.ch/ © 2010 livedoor Co.,Ltd.
- 2. 自己紹介
開発部 新規開発グループ
吉川英興 @hideoki
http://tou.ch/ © 2010 livedoor Co.,Ltd.
- 3. 目次
•ロケタッチとは
•システム構成
•位置情報関連
http://tou.ch/ © 2010 livedoor Co.,Ltd.
- 5. ロケタッチとは
•ライブドアの提供する位置情報サービス
•スマートフォン向けWeb版 2010年7月15日
•iPhoneアプリ、携帯向けサービスは開発中
•http://tou.ch/
•Twitter @loctouch
http://tou.ch/ © 2010 livedoor Co.,Ltd.
- 6. どんなサービスか
•いった場所やものを記録(タッ
チ)
•自分や友達がタッチした記
録が地図になる
•タッチした時間や場所によっ
てシールがもらえる
•今週GMS名古屋で発表
http://tou.ch/ © 2010 livedoor Co.,Ltd.
- 8. 開発言語
•Perl
App Server : Starman
WAF : Sledge + PSGI
•JavaScript
jQuery
http://tou.ch/ © 2010 livedoor Co.,Ltd.
- 9. システム構成
典型的なLAMP構成
Linux
Apache
MySQL
Starman
http://tou.ch/ © 2010 livedoor Co.,Ltd.
- 11. Google Maps API V3
Default Stlyed Map
http://tou.ch/ © 2010 livedoor Co.,Ltd.
- 12. Geolocation API
ブラウザから現在位置を取得するためのAPI
いまどきのスマートフォンで利用可能
Firefox や chrome などからもつかえる
Android1.6以前では Gears を利用する
http://tou.ch/ © 2010 livedoor Co.,Ltd.
- 13. Geolocation API
navigator.geolocation.getCurrentPosition(
function (curPos) {
var lat = curPos.coords.latitude;
var lng = curPos.coords.longitude;
// ここに処理
},
function (error) {
// 失敗したときの処理
},
{
enableHighAccuracy: true,
maximumAge: 5 * 60 * 1000,
timeout: 30 * 1000,
}
);
http://tou.ch/ © 2010 livedoor Co.,Ltd.
- 14. 空間インデックス
問題
現在地の近くのレコードを検索
SELECT * FROM spot
WHERE
lat >= ? AND lat < ? AND
lng >= ? AND lng < ?
lng にはインデックスがが効かない
http://tou.ch/ © 2010 livedoor Co.,Ltd.
- 15. 空間インデックス
特殊なデータ構造を用いる
R-Tree
4分木
簡易なデータ構造
グリッド
http://tou.ch/ © 2010 livedoor Co.,Ltd.
- 16. 主なグリッドの例
地域メッシュ(総務省
iエリアメッシュ
MGRS
geohex
geohash
http://tou.ch/ © 2010 livedoor Co.,Ltd.
- 17. Geohash
経緯度の範囲を文字列で表現
文字列の長さで精度を変えられる
長いgeohashを使えば実質地点を表現できる
http://tou.ch/ © 2010 livedoor Co.,Ltd.
- 18. 例
xn774c
xn774ck
http://tou.ch/ © 2010 livedoor Co.,Ltd.
- 19. Geohashの利用
DB に保存してインデックスとして利用
spot 12桁 -> LIKE で先頭マッチ
touch 6桁 -> IN を使った検索
http://tou.ch/ © 2010 livedoor Co.,Ltd.
- 20. 利点
先頭マッチで必要な精度で検索できる
キャッシュに乗せやすい
変換表を持たなくてよい
欠点
文字数の偶奇でメッシュの形状が違う
高緯度でメッシュが狭くなる
http://tou.ch/ © 2010 livedoor Co.,Ltd.
- 21. ご清聴ありがとうございました
ライブドアではエンジニアを募集しています
• 明日 18:00~GMS名古屋で発表あります
• ハッシュタグ #gms_nagoya
• Ust あり
http://tou.ch/ © 2010 livedoor Co.,Ltd.