SlideShare a Scribd company logo
1 of 21
Download to read offline
ロケタッチの裏側

                  株式会社ライブドア
                  開発部 吉川英興


http://tou.ch/                © 2010 livedoor Co.,Ltd.
自己紹介
     開発部 新規開発グループ
     吉川英興 @hideoki




http://tou.ch/       © 2010 livedoor Co.,Ltd.
目次

             •ロケタッチとは
             •システム構成
             •位置情報関連



http://tou.ch/          © 2010 livedoor Co.,Ltd.
ロケタッチとは


http://tou.ch/         © 2010 livedoor Co.,Ltd.
ロケタッチとは
     •ライブドアの提供する位置情報サービス
     •スマートフォン向けWeb版 2010年7月15日
     •iPhoneアプリ、携帯向けサービスは開発中
     •http://tou.ch/
     •Twitter @loctouch




http://tou.ch/          © 2010 livedoor Co.,Ltd.
どんなサービスか
  •いった場所やものを記録(タッ
  チ)
  •自分や友達がタッチした記
  録が地図になる
  •タッチした時間や場所によっ
  てシールがもらえる
  •今週GMS名古屋で発表


http://tou.ch/      © 2010 livedoor Co.,Ltd.
ロケタッチのシステム


http://tou.ch/   © 2010 livedoor Co.,Ltd.
開発言語
           •Perl
             App Server : Starman
             WAF : Sledge + PSGI

           •JavaScript
             jQuery



http://tou.ch/                      © 2010 livedoor Co.,Ltd.
システム構成
典型的なLAMP構成
     Linux
     Apache
     MySQL
     Starman




http://tou.ch/   © 2010 livedoor Co.,Ltd.
位置情報関連


http://tou.ch/        © 2010 livedoor Co.,Ltd.
Google Maps API V3




  Default        Stlyed Map
http://tou.ch/           © 2010 livedoor Co.,Ltd.
Geolocation API
        ブラウザから現在位置を取得するためのAPI
        いまどきのスマートフォンで利用可能
        Firefox や chrome などからもつかえる
        Android1.6以前では Gears を利用する




http://tou.ch/             © 2010 livedoor Co.,Ltd.
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.
空間インデックス
       問題
        現在地の近くのレコードを検索
             SELECT * FROM spot
               WHERE
                 lat >= ? AND lat < ? AND
                 lng >= ? AND lng < ?

            lng にはインデックスがが効かない

http://tou.ch/                              © 2010 livedoor Co.,Ltd.
空間インデックス
        特殊なデータ構造を用いる
          R-Tree
          4分木

        簡易なデータ構造
          グリッド


http://tou.ch/         © 2010 livedoor Co.,Ltd.
主なグリッドの例
         地域メッシュ(総務省
         iエリアメッシュ
         MGRS
         geohex
         geohash



http://tou.ch/        © 2010 livedoor Co.,Ltd.
Geohash
     経緯度の範囲を文字列で表現
     文字列の長さで精度を変えられる
     長いgeohashを使えば実質地点を表現できる




http://tou.ch/      © 2010 livedoor Co.,Ltd.
例

           xn774c


                    xn774ck




http://tou.ch/                © 2010 livedoor Co.,Ltd.
Geohashの利用
      DB に保存してインデックスとして利用

         spot 12桁 -> LIKE で先頭マッチ
         touch 6桁 -> IN を使った検索



http://tou.ch/           © 2010 livedoor Co.,Ltd.
利点
        先頭マッチで必要な精度で検索できる
        キャッシュに乗せやすい
        変換表を持たなくてよい

      欠点
          文字数の偶奇でメッシュの形状が違う
          高緯度でメッシュが狭くなる

http://tou.ch/        © 2010 livedoor Co.,Ltd.
ご清聴ありがとうございました

     ライブドアではエンジニアを募集しています


   • 明日 18:00~GMS名古屋で発表あります
   • ハッシュタグ #gms_nagoya
   • Ust あり
http://tou.ch/      © 2010 livedoor Co.,Ltd.

More Related Content

What's hot

10分でできるCrowd mapのデプロイ
10分でできるCrowd mapのデプロイ10分でできるCrowd mapのデプロイ
10分でできるCrowd mapのデプロイShu Higashi
 
FOSS4G 2014 Hokkaidoハンズオン - PostGIS入門
FOSS4G 2014 Hokkaidoハンズオン - PostGIS入門FOSS4G 2014 Hokkaidoハンズオン - PostGIS入門
FOSS4G 2014 Hokkaidoハンズオン - PostGIS入門Hideo Harada
 
FOSS4Gツール勉強会@名古屋発表資料(岩崎)
FOSS4Gツール勉強会@名古屋発表資料(岩崎)FOSS4Gツール勉強会@名古屋発表資料(岩崎)
FOSS4Gツール勉強会@名古屋発表資料(岩崎)IWASAKI NOBUSUKE
 
サイボウズ・ラボユース成果発表会資料
サイボウズ・ラボユース成果発表会資料サイボウズ・ラボユース成果発表会資料
サイボウズ・ラボユース成果発表会資料masahiro13
 
Map server入門 - FOSS4G 2012 Hokkaido
Map server入門 - FOSS4G 2012 HokkaidoMap server入門 - FOSS4G 2012 Hokkaido
Map server入門 - FOSS4G 2012 HokkaidoHideo Harada
 
レイトレ空間構造入門
レイトレ空間構造入門レイトレ空間構造入門
レイトレ空間構造入門Toru Matsuoka
 

What's hot (8)

仮想記憶の構築法
仮想記憶の構築法仮想記憶の構築法
仮想記憶の構築法
 
卒論
卒論卒論
卒論
 
10分でできるCrowd mapのデプロイ
10分でできるCrowd mapのデプロイ10分でできるCrowd mapのデプロイ
10分でできるCrowd mapのデプロイ
 
FOSS4G 2014 Hokkaidoハンズオン - PostGIS入門
FOSS4G 2014 Hokkaidoハンズオン - PostGIS入門FOSS4G 2014 Hokkaidoハンズオン - PostGIS入門
FOSS4G 2014 Hokkaidoハンズオン - PostGIS入門
 
FOSS4Gツール勉強会@名古屋発表資料(岩崎)
FOSS4Gツール勉強会@名古屋発表資料(岩崎)FOSS4Gツール勉強会@名古屋発表資料(岩崎)
FOSS4Gツール勉強会@名古屋発表資料(岩崎)
 
サイボウズ・ラボユース成果発表会資料
サイボウズ・ラボユース成果発表会資料サイボウズ・ラボユース成果発表会資料
サイボウズ・ラボユース成果発表会資料
 
Map server入門 - FOSS4G 2012 Hokkaido
Map server入門 - FOSS4G 2012 HokkaidoMap server入門 - FOSS4G 2012 Hokkaido
Map server入門 - FOSS4G 2012 Hokkaido
 
レイトレ空間構造入門
レイトレ空間構造入門レイトレ空間構造入門
レイトレ空間構造入門
 

Similar to ロケタッチの裏側

gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作る
gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作るgumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作る
gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作るgumilab
 
NAO/Pepper 開発環境 について
NAO/Pepper 開発環境 についてNAO/Pepper 開発環境 について
NAO/Pepper 開発環境 についてTakuji Kawata
 
SORACOM LoRaWAN Conference 2017 | LoRaWAN活用の展望  〜パネルディスカッション〜
SORACOM LoRaWAN Conference 2017 | LoRaWAN活用の展望  〜パネルディスカッション〜SORACOM LoRaWAN Conference 2017 | LoRaWAN活用の展望  〜パネルディスカッション〜
SORACOM LoRaWAN Conference 2017 | LoRaWAN活用の展望  〜パネルディスカッション〜SORACOM,INC
 
webエンジニアがIoTにハマるわけ
webエンジニアがIoTにハマるわけwebエンジニアがIoTにハマるわけ
webエンジニアがIoTにハマるわけEiji Yokota
 
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦Sho Yoshida
 
HexRinger と FOSS4G の紆余曲折
HexRinger と FOSS4G の紆余曲折HexRinger と FOSS4G の紆余曲折
HexRinger と FOSS4G の紆余曲折Hironov OKUYAMA
 
Programming AWS with Python
Programming AWS with Python  Programming AWS with Python
Programming AWS with Python Yasuhiro Matsuo
 
Rtミドルウェア講習会 第3部資料 配布版
Rtミドルウェア講習会 第3部資料 配布版Rtミドルウェア講習会 第3部資料 配布版
Rtミドルウェア講習会 第3部資料 配布版openrtm
 
雰囲気実装を少し抜け出そう!RFCからPHPの実装ま でを考えるタイムゾーンとサマータイム!!!
雰囲気実装を少し抜け出そう!RFCからPHPの実装ま でを考えるタイムゾーンとサマータイム!!!雰囲気実装を少し抜け出そう!RFCからPHPの実装ま でを考えるタイムゾーンとサマータイム!!!
雰囲気実装を少し抜け出そう!RFCからPHPの実装ま でを考えるタイムゾーンとサマータイム!!!Suguru Ohki
 
Webアプリケーション開発での位置情報活用
Webアプリケーション開発での位置情報活用Webアプリケーション開発での位置情報活用
Webアプリケーション開発での位置情報活用Masakazu Muraoka
 
認証/認可が実現する安全で高速分析可能な分析処理基盤
認証/認可が実現する安全で高速分析可能な分析処理基盤認証/認可が実現する安全で高速分析可能な分析処理基盤
認証/認可が実現する安全で高速分析可能な分析処理基盤Masahiro Kiura
 
クラウドGPS(仮)
クラウドGPS(仮)クラウドGPS(仮)
クラウドGPS(仮)terurou
 
Hadoop~Yahoo!Japanの活用について
Hadoop~Yahoo!Japanの活用についてHadoop~Yahoo!Japanの活用について
Hadoop~Yahoo!Japanの活用についてkaminashi
 
AWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャAWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャ真吾 吉田
 
『Androidアプリ「おもてナビ」の開発にみるARとGPSの活用ポイント』カサレアル石川氏
『Androidアプリ「おもてナビ」の開発にみるARとGPSの活用ポイント』カサレアル石川氏『Androidアプリ「おもてナビ」の開発にみるARとGPSの活用ポイント』カサレアル石川氏
『Androidアプリ「おもてナビ」の開発にみるARとGPSの活用ポイント』カサレアル石川氏Developers Summit
 

Similar to ロケタッチの裏側 (20)

gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作る
gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作るgumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作る
gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作る
 
Hadoop ~Yahoo! JAPANの活用について~
Hadoop ~Yahoo! JAPANの活用について~Hadoop ~Yahoo! JAPANの活用について~
Hadoop ~Yahoo! JAPANの活用について~
 
NAO/Pepper 開発環境 について
NAO/Pepper 開発環境 についてNAO/Pepper 開発環境 について
NAO/Pepper 開発環境 について
 
MapReduceによる大規模データ処理 at Yahoo! JAPAN
MapReduceによる大規模データ処理 at Yahoo! JAPANMapReduceによる大規模データ処理 at Yahoo! JAPAN
MapReduceによる大規模データ処理 at Yahoo! JAPAN
 
SORACOM LoRaWAN Conference 2017 | LoRaWAN活用の展望  〜パネルディスカッション〜
SORACOM LoRaWAN Conference 2017 | LoRaWAN活用の展望  〜パネルディスカッション〜SORACOM LoRaWAN Conference 2017 | LoRaWAN活用の展望  〜パネルディスカッション〜
SORACOM LoRaWAN Conference 2017 | LoRaWAN活用の展望  〜パネルディスカッション〜
 
Qgislecture 0
Qgislecture 0Qgislecture 0
Qgislecture 0
 
webエンジニアがIoTにハマるわけ
webエンジニアがIoTにハマるわけwebエンジニアがIoTにハマるわけ
webエンジニアがIoTにハマるわけ
 
IoTの魅力
IoTの魅力IoTの魅力
IoTの魅力
 
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
 
HexRinger と FOSS4G の紆余曲折
HexRinger と FOSS4G の紆余曲折HexRinger と FOSS4G の紆余曲折
HexRinger と FOSS4G の紆余曲折
 
Programming AWS with Python
Programming AWS with Python  Programming AWS with Python
Programming AWS with Python
 
Drupal on vagrant-aws
Drupal on vagrant-awsDrupal on vagrant-aws
Drupal on vagrant-aws
 
Rtミドルウェア講習会 第3部資料 配布版
Rtミドルウェア講習会 第3部資料 配布版Rtミドルウェア講習会 第3部資料 配布版
Rtミドルウェア講習会 第3部資料 配布版
 
雰囲気実装を少し抜け出そう!RFCからPHPの実装ま でを考えるタイムゾーンとサマータイム!!!
雰囲気実装を少し抜け出そう!RFCからPHPの実装ま でを考えるタイムゾーンとサマータイム!!!雰囲気実装を少し抜け出そう!RFCからPHPの実装ま でを考えるタイムゾーンとサマータイム!!!
雰囲気実装を少し抜け出そう!RFCからPHPの実装ま でを考えるタイムゾーンとサマータイム!!!
 
Webアプリケーション開発での位置情報活用
Webアプリケーション開発での位置情報活用Webアプリケーション開発での位置情報活用
Webアプリケーション開発での位置情報活用
 
認証/認可が実現する安全で高速分析可能な分析処理基盤
認証/認可が実現する安全で高速分析可能な分析処理基盤認証/認可が実現する安全で高速分析可能な分析処理基盤
認証/認可が実現する安全で高速分析可能な分析処理基盤
 
クラウドGPS(仮)
クラウドGPS(仮)クラウドGPS(仮)
クラウドGPS(仮)
 
Hadoop~Yahoo!Japanの活用について
Hadoop~Yahoo!Japanの活用についてHadoop~Yahoo!Japanの活用について
Hadoop~Yahoo!Japanの活用について
 
AWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャAWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャ
 
『Androidアプリ「おもてナビ」の開発にみるARとGPSの活用ポイント』カサレアル石川氏
『Androidアプリ「おもてナビ」の開発にみるARとGPSの活用ポイント』カサレアル石川氏『Androidアプリ「おもてナビ」の開発にみるARとGPSの活用ポイント』カサレアル石川氏
『Androidアプリ「おもてナビ」の開発にみるARとGPSの活用ポイント』カサレアル石川氏
 

Recently uploaded

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 

Recently uploaded (9)

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 

ロケタッチの裏側

  • 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.
  • 4. ロケタッチとは 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.
  • 10. 位置情報関連 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.