Geohash
Geohashは地球上のある区画を1つの文字列で表現するエンコーディングの一種
絵があってすごくわかりやすい
世界地図を経度で二分割して真ん中より値が大きいか小さいかで1 or 0を当てる、それを次に緯度でやり、それを経度でやり...とやっていくと、2進数列ができるので、これを32進数文字列にエンコードしたのがGeoHash
世界地図を舞台に、緯度と経度を交互に二分探索していくイメージ
性質として、奇数桁が経度、偶数桁が緯度を表していると考えられる
ある区画の隣接マスの横は奇数桁だけ取り出して±1すればいいし、縦は偶数桁だけ取り出して±1すればいい
より大きい桁がより距離の大きい世界地図の分割なので、GeoHashを普通の32進数とみなせば順序を定義されているとみなせる=ソートできる
桁を丸める操作をすればGeoHashの区画を結合して範囲を広げることができるなど、色んな操作が可能