Geohash 変換ツールとは?
このツールは緯度経度の座標をジオハッシュ文字列に変換し、その逆も行います。ジオハッシュは「9q8yy」のような短い文字列で位置を表し、1文字増えるごとに範囲が細かくなります。データベースのインデックス、近傍検索、位置情報のコンパクトな共有に便利です。精度は1〜12文字の範囲で調整できます。
符号化に使う文字集合からは a、i、l、o が除かれていて、手書きや口頭で 1 や 0 と取り違える心配がありません。階層構造になっているため、近い2点は先頭の数文字が一致します。普通の文字列インデックスが位置検索に使えるのはこのためです。セル本体に加えて周囲8セルと、CSV・GeoJSON・KML の書き出しにも対応しています。
使い方
- 緯度と経度(例:37.7749、-122.4194)を入力するか、デコードしたいジオハッシュを貼り付けます。
- 精度スライダーで文字数、つまりバウンディングボックスの細かさを調整します。
- ジオハッシュをコピーするか、デコードされた中心点とバウンディングボックスの範囲・サイズを確認します。
使用するタイミング
- 配送先の座標を、地理インデックスのないDBに並べ替え可能な文字列として保存する。
- GPSログをセル単位にまとめて、エリアごとの訪問回数を数える。
- 精度6のセルが実際に何メートル四方なのかを、水準を決める前に確かめる。
結果
近傍検索用にカフェをインデックス化する開発者が、37.7749、-122.4194を精度7で「9q8yyk8」に変換します。1辺およそ150mのセルにあたり、そのままデータベースのソートキーとして保存できます。
よくある質問
- 道路を挟んだだけの2地点で、ジオハッシュが全く違うのはなぜですか?
- セルの境界は緯度経度の固定線上にあり、地上の地物とは無関係です。1メートルしか離れていない2点が隣接セルに分かれることもあります。近傍検索でこのツールが示す周囲8セルも一緒に調べるのはそのためです。
- 精度の各レベルで、1つのセルはどれくらいの広さになりますか?
- 精度5でおよそ4.9km四方、精度6で約1.2km×610m、精度7で約153m四方、精度9になると約4.8m四方です。選んだ精度の正確な範囲は結果に数値で表示されます。
- ジオハッシュの末尾を削るだけで、粗いセルに変えられますか?
- できます。最後の1文字を落とすと親セルに広がるので、9q8yyk8 を 9q8yy に切っても元の地点は含まれたままです。逆に文字を足して精度を上げることは、元の座標なしにはできません。
- ジオハッシュに a、i、l、o の4文字が現れないのはなぜですか?
- base32 の文字集合が、1 や 0 との読み違いや打ち間違いを避けるために外しているからです。この4文字を含む文字列は、誤った位置に変換せずエラーとして返します。
- ジオハッシュから、その地点の国や都市名は分かりますか?
- 分かりません。格子上の矩形を表すだけです。地名が必要なら逆ジオコーディングが別途要ります。ジオハッシュが与えるのは、近い場所どうしが並んで整列するキーです。