- @ThothChildren
- 2018.10.30
- PV 146
GeoHash
ー 概要 ー
GeoHash(ジオハッシュ)は、緯度と経度の値を元に任意の場所、任意の精度でその位置を表現する短い文字列を得る.文字列が近いほど位置も近く(必ずとは限らない)、精度が高いほど文字列が長くなる性質.
この章を学ぶ前に必要な知識
条件
- 緯度と経度の情報を元に算出
効果
- 場所と精度を一意の文字列で表現
- 長さが長いと精度が高いことを示す文字列
ポイント
- 文字列が似ているほど近いことが多い(z-curveの性質を持つ)
- 赤道や子午線の周りのみ文字列が似る性質を持たない
解 説
GeoHash(ジオハッシュ)は、緯度と経度の値を元に任意の場所、任意の精度でその位置を表現する短い文字列を得るジオコーディング手法.
エンコードの方法によってz-curveの性質を持つために文字列が近いほど位置も近く(必ずとは限らない).
また、ハッシュした文字列の長さは可変で精度が高いほど文字列が長くなる性質であり、長いほど位置が限定されていくようになっている. | GeoHash(ジオハッシュ) |
GeoHashの概念図 | |
z-curveは右のリンクを参照ください. | Z-order 曲線(Z階数曲線) |
GeoHashは、緯度経度と対応して一意のIDを得ることができ、データベースとの相性もよいものとなっている. | GeoHashのメリット |
GeoCodeのデコードについて簡単に示す。エンコードはこの逆順で操作すれば良い。
デコード手順
1. Base32でエンコードされているので、文字列からビット列に戻す。
2. ビット列のうち偶数番目のビットを抜き出すと経度のビット列、奇数番目のビットを抜き出すと緯度のビット列になっている
3. 先頭のビットから角度の範囲を絞っていく
もし1なら範囲の上半分、0なら範囲の下半分という絞り込みを行い、緯度経度それぞれで該当範囲を求めていく. | GeoHashのデコードについて |
この章を学んで新たに学べる
Comments