Geohash(ジオハッシュ)とは?
地図上の位置座標(緯度・経度)を、短い英数字の文字列コードへ変換して管理する空間インデックス技術です。
01 // ENCODING COORDINATES
住所や座標を短いコードに変換
通常、場所を特定するには「東京都千代田区...」のような長い住所や、「北緯35.68度、東経139.76度」のような小数点を含む緯度・経度を使用します。
Geohash(ジオハッシュ)は、経緯度座標をメッシュ状に分割し、xn77hc といった短い英数字の文字列で表現する仕組みです。
02 // PREFIX PROXIMITY
前方一致による高速な近傍検索
Geohashの最大の特徴は、「距離が近い場所ほど、先頭の文字列が一致する」という性質です。
例えば、東京駅付近(xn77hc)と有楽町駅付近(xn77h8)は、先頭5文字が同じ xn77h で始まります。これにより、データベース上で複雑な三角関数計算を行わずに「周辺の青看板」を高速に抽出できます。
PRECISION TABLE
文字の長さとエリアの細かさ
Geohashは桁数(文字数)が増えるほど、よりピンポイントで狭い矩形領域を指し示します。
| 桁数 (サンプル) | 表すエリアの広さ(目安) | アーカイブでの用途・粒度 |
|---|---|---|
| 3文字 (例: xn7) | 約 156km × 156km | 地方ブロック単位(関東地方全域など) |
| 4文字 (例: xn77) | 約 39km × 19.5km | 広域検索モード(都市圏単位) |
| 5文字 (例: xn77h) | 約 4.9km × 4.9km | 標準検索モード(市区町村単位) |
| 6文字 (例: xn77hc) | 約 1.2km × 0.6km | 詳細検索モード(主要交差点・駅周辺) |
| 7文字 (例: xn77hca) | 約 153m × 153m | ピンポイントな近隣標識の照合 |
SYSTEM IMPLEMENTATION
青看板アーカイブ(aokan.org)での役割
当サイトでは、登録された各青看板の「設置地点座標(geohash)」および、その青看板が案内している「目標交差点座標(goalgeohash)」の双方をGeohashとして記録しています。
これにより、詳細ページを閲覧している際に「近くにある他の青看板」を瞬時にインデックス検索して提示したり、検索ページから指定したGeohashプレフィックスに一致する標識群を抽出したりすることが可能になっています。
EXTERNAL REFERENCES