gps座標を短い文字列で扱えるgeo hashが面白い
TRANSCRIPT
![Page 1: Gps座標を短い文字列で扱えるGeo Hashが面白い](https://reader034.vdocuments.mx/reader034/viewer/2022052215/557dd223d8b42ae4688b4f18/html5/thumbnails/1.jpg)
GPS座標を短い文字列で扱えるGeoHashが面白い
ke-tai.org 松井健太郎
![Page 2: Gps座標を短い文字列で扱えるGeo Hashが面白い](https://reader034.vdocuments.mx/reader034/viewer/2022052215/557dd223d8b42ae4688b4f18/html5/thumbnails/2.jpg)
自己紹介
•株式会社インフィニットループ所属
•ケータイプログラマのための情報サイト「ke-tai.org」管理人
•コーラが好き
![Page 3: Gps座標を短い文字列で扱えるGeo Hashが面白い](https://reader034.vdocuments.mx/reader034/viewer/2022052215/557dd223d8b42ae4688b4f18/html5/thumbnails/3.jpg)
![Page 4: Gps座標を短い文字列で扱えるGeo Hashが面白い](https://reader034.vdocuments.mx/reader034/viewer/2022052215/557dd223d8b42ae4688b4f18/html5/thumbnails/4.jpg)
GeoHashとは
• 位置情報(座標)を短い文字列で表したもの
• 「+141.22.35.364, +43.3.14.112」 ↓ ↓ ↓「xpssbxt2gpf」
![Page 5: Gps座標を短い文字列で扱えるGeo Hashが面白い](https://reader034.vdocuments.mx/reader034/viewer/2022052215/557dd223d8b42ae4688b4f18/html5/thumbnails/5.jpg)
GeoHashとは(2)• ポイント(点)ではなく範囲を示している
• 長さによって精度が変わる
xpssbxt2(8文字) xpssbx(6文字)
![Page 6: Gps座標を短い文字列で扱えるGeo Hashが面白い](https://reader034.vdocuments.mx/reader034/viewer/2022052215/557dd223d8b42ae4688b4f18/html5/thumbnails/6.jpg)
GeoHashとは(3)• 隣接エリアが容易に取得できる
xpst08の隣接エリアを取得した結果
![Page 7: Gps座標を短い文字列で扱えるGeo Hashが面白い](https://reader034.vdocuments.mx/reader034/viewer/2022052215/557dd223d8b42ae4688b4f18/html5/thumbnails/7.jpg)
メリット(1)• 場所の絞り込みが簡単に行える、隣接エリアの取得も容易
• 範囲が前方一致で検索できるので、文字列マッチやSQLのlike文などとも相性が良く、高速な処理が可能
lon > 141.22345 AND lon < 141.23124 AND lat > 43.41228AND lat < 143.42.097
geohash LIKE ‘xpssbxt2%’
↓ ↓ ↓
![Page 8: Gps座標を短い文字列で扱えるGeo Hashが面白い](https://reader034.vdocuments.mx/reader034/viewer/2022052215/557dd223d8b42ae4688b4f18/html5/thumbnails/8.jpg)
メリット(2)• 座標と精度を短い文字列で持つことができるので、URLで扱いやすい
• Perl, PHP, Ruby, Java, JavaScriptなど色々な言語でライブラリの実装が進んでいる
→ 我らがLOCALのriaf氏も早速PHP実装を公開しているhttp://blog.riaf.jp/post/378886859/geohash-php
foo.php?lon= 141.22345&lat= 43.41228&zoom=12↓ ↓ ↓
bar.php?gh=xpssbxt2
![Page 9: Gps座標を短い文字列で扱えるGeo Hashが面白い](https://reader034.vdocuments.mx/reader034/viewer/2022052215/557dd223d8b42ae4688b4f18/html5/thumbnails/9.jpg)
技術的な仕組み
• 文字列→座標を例に考えるとわかりやすい1. base32でデコード2. 2進数(5bit)に変換する3. 偶数bit(経度)、奇数bit(緯度)に分ける4. 範囲を二分木で絞り込んでいく
• 参考/引用元URLゆろよろ日記
http://d.hatena.ne.jp/yuroyoro/20100115/1263526125
![Page 10: Gps座標を短い文字列で扱えるGeo Hashが面白い](https://reader034.vdocuments.mx/reader034/viewer/2022052215/557dd223d8b42ae4688b4f18/html5/thumbnails/10.jpg)
まとめGeoHashを使うと位置情報を簡単に扱うことができる
• エリアによるお店の絞込み
• 近くにある店/いる人の取得
などにきっと便利なはず
位置情報を使ったWebサイトを作るときは
覚えておくといいかも