ロケタッチの裏側

4,006 views

Published on

Published in: Technology

ロケタッチの裏側

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

×