座標をgeohashに(そして戻す)落とし穴なく変換する
geohashは点ではなくセル(領域)です — デコードで返るのは範囲で、元の座標そのものではありません。精度・セルサイズ・デコードが実際に返すものをまとめます。
このガイドで使う道具
やりたいこと
geohashは緯度・経度のビットを交互に並べて短い文字列にエンコードします。近い場所がプレフィックスを共有するため、データベースや地理インデックスで使われます。東京駅の35.681236, 139.767125は精度9で xn76urx66 になります。
エンコードとデコード
エンコードを選び、座標と1〜12の精度を入力します。またはハッシュを貼ってデコードします。セルの中心・正確な範囲・その精度でのおよそのサイズが返ります。
- 精度は文字数とセルサイズのトレードオフです。5文字で約4.9km、8文字で約19m×38m(緯度×経度)、12文字でミリメートル級です。
- デコードは「丸めの解除」ではありません — u4pruydqqvj は57.64911, 10.40744付近のセルに解決され、そのセル内のどの点も同じハッシュを生成します。
- アルファベットは0〜9とb〜z(a・i・l・oを除く)です — これらを含むハッシュはgeohashではありません。
注意点
表示するセルサイズは赤道付近の目安で、経度方向のセルは高緯度で狭まります。同じ精度でも北海道はシンガポールより狭い範囲を指します。隣接セルはプレフィックスの大部分を共有しますが常ではなく、1m離れた2点が別セルに入ることがあります。範囲は緯度±90・経度±180、精度1〜12です。