gps座標を短い文字列で扱えるgeo hashが面白い

10
GPS座標を短い文字列で 扱えるGeoHashが面白い ke- tai.org 松井健太郎

Upload: kentaro-matsui

Post on 15-Jun-2015

3.493 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Gps座標を短い文字列で扱えるGeo Hashが面白い

GPS座標を短い文字列で扱えるGeoHashが面白い

ke-tai.org 松井健太郎

Page 2: Gps座標を短い文字列で扱えるGeo Hashが面白い

自己紹介

•株式会社インフィニットループ所属

•ケータイプログラマのための情報サイト「ke-tai.org」管理人

•コーラが好き

Page 3: Gps座標を短い文字列で扱えるGeo Hashが面白い
Page 4: Gps座標を短い文字列で扱えるGeo Hashが面白い

GeoHashとは

• 位置情報(座標)を短い文字列で表したもの

• 「+141.22.35.364, +43.3.14.112」  ↓ ↓ ↓「xpssbxt2gpf」

Page 5: Gps座標を短い文字列で扱えるGeo Hashが面白い

GeoHashとは(2)• ポイント(点)ではなく範囲を示している

• 長さによって精度が変わる

xpssbxt2(8文字) xpssbx(6文字)

Page 6: Gps座標を短い文字列で扱えるGeo Hashが面白い

GeoHashとは(3)• 隣接エリアが容易に取得できる

xpst08の隣接エリアを取得した結果

Page 7: Gps座標を短い文字列で扱えるGeo Hashが面白い

メリット(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が面白い

メリット(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が面白い

技術的な仕組み

• 文字列→座標を例に考えるとわかりやすい1. base32でデコード2. 2進数(5bit)に変換する3. 偶数bit(経度)、奇数bit(緯度)に分ける4. 範囲を二分木で絞り込んでいく

• 参考/引用元URLゆろよろ日記

http://d.hatena.ne.jp/yuroyoro/20100115/1263526125

Page 10: Gps座標を短い文字列で扱えるGeo Hashが面白い

まとめGeoHashを使うと位置情報を簡単に扱うことができる

• エリアによるお店の絞込み

• 近くにある店/いる人の取得

などにきっと便利なはず

位置情報を使ったWebサイトを作るときは

覚えておくといいかも