Geohash 编码器
转换
Geohash 是将经纬度对编码为 base-32 字符串的分层空间索引。每多一个字符,单元精度提升 32 倍,精度 5 约 5 km,精度 8 约 38 m,精度 12 约 3 cm。广泛用于数据库邻近搜索(Redis GEO、MongoDB、Elasticsearch)、瓦片以及 IoT 位置批处理。本工具将坐标编码为精度 1-12 的任一级,解码时返回中心坐标和边界框,并显示 8 个相邻单元(邻近查询必须包含相邻单元时尤其有用)。
—
主要城市
Geohash
wydm9qy89
中心坐标
37.566483, 126.977985
边界框
S 37.566462, W 126.977963
N 37.566504, E 126.978006
N 37.566504, E 126.978006
8 邻接 + 中心
西北
wydm9qy8b
北
wydm9qy8c
东北
wydm9qy8f
西
wydm9qy88
中心
wydm9qy89
东
wydm9qy8d
西南
wydm9qy82
南
wydm9qy83
东南
wydm9qy86
每个字符单元尺寸减半。精度 9(~5 m)适合配送;5(~5 km)适合城市级邻近搜索。
使用方法
- Encode 模式:输入十进制经纬度(如 `39.9042, 116.4074`),选精度。
- Decode 模式:粘贴 geohash → 获取中心坐标和边界框。
- 邻接单元自动计算 — 「查找 X 附近 1 km」之类查询需要 OR 周围 8 个单元时非常有用。
常见问题
- 字母表是?
- Base-32,`0-9bcdefghjkmnpqrstuvwxyz` — 排除 `a`、`i`、`l`、`o` 以避免与 4、1、1、0 视觉混淆。所有 geohash 库使用的标准 Niemeyer 字母表。
- 各精度的单元大小?
- 每多一个字符,经度和纬度交替减半。赤道附近大致单元宽度:1→5000 km,5→4.9 km,8→38 m,9→4.8 m,12→3.7 cm。靠近极地越窄。
- 为什么需要邻接单元?
- Geohash 单元呈格子状。靠近边界的点,最近邻可能在相邻单元。「1 km 以内查询」不能只查目标单元,需查 3×3 块。邻接函数返回周围 8 个 hash,可在查询中用 OR 合并。