Geohash编解码
经纬度 ↔ Geohash 字符串互相转换
纬度 latitude(-90 ~ 90)
经度 longitude(-180 ~ 180)
结果
这个工具能做什么
Geohash 编解码工具在经纬度坐标和 Geohash 字符串之间互相转换。编码时输入纬度、经度和精度位数,得到一串由数字和字母组成的 Geohash;解码时输入 Geohash 字符串,还原出中心点的经纬度以及误差范围。它是地理位置索引和「附近搜索」的常用技术。
Geohash 的核心思想是把地球表面反复二分:交替对经度和纬度做二分,落在哪一半就记一个二进制位,再把这些位每五个一组用 base32 字符表示。字符串越长,划分越细、精度越高。一个巧妙的性质是——两个位置的 Geohash 前缀相同越多,它们在地理上就越接近,因此可以用字符串前缀匹配来做邻近查询。
举个经典例子,纬度 57.64911、经度 10.40744 在 11 位精度下编码为 u4pruydqqvj。反过来把 u4pruydqqvj 解码,就能得到接近原坐标的中心点和一个很小的误差矩形。精度 6 位大约对应 ±0.6 公里,8 位约 ±19 米,位数越多越精确。
要注意 Geohash 有个边界问题:两个物理上很近但恰好跨越了某条二分边界的点,前缀可能差别很大。所以做严格的邻近搜索时,通常还要同时检查目标格子周围的 8 个相邻格子,避免漏掉边界附近的结果。
Geohash编解码是一个免费的在线工具,打开网页就能用,不用下载也不用注册。平时大家搜的“geohash”、“geohash编码”、“geohash解码”,说的都是这个。
常见使用场景
- 为"附近的店铺/用户"做地理邻近搜索
- 把经纬度转成短字符串便于索引和存储
- 给地图数据按 Geohash 网格分区聚合
- 调试 LBS 功能时核对坐标与 Geohash 对应关系
使用方法
- 把内容粘贴到输入框(生成类工具直接设置选项)。
- 按需要选择选项,点操作按钮。
- 结果出现在下方,点「复制结果」即可带走。
常见问题
Geohash 是什么,有什么用?
Geohash 把经纬度编码成一串 base32 字符,前缀相同代表位置相近。常用于地理位置索引、"附近的人/店"这类邻近搜索和空间数据分区。
Geohash 越长越精确吗?
是的。每多一个字符,划分的格子就更细。6 位约 ±0.6 公里,8 位约 ±19 米,位数越多定位越精确,但字符串也越长。
为什么前缀相同就位置相近?
因为 Geohash 是逐层二分坐标空间,前缀相同意味着两点落在同一批大格子里,所以物理上接近。这让前缀匹配成为高效的邻近查询手段。
Geohash 用了哪些字符?
用的是去掉易混淆字母的 base32 字符集:0-9 和 b c d e f g h j k m n p q r s t u v w x y z,不含 a、i、l、o,避免看错。
做附近搜索只查一个 Geohash 够吗?
不够。相近的点可能落在相邻格子里,跨越边界时前缀差别很大。严格的邻近搜索需要同时查询目标格及其周围 8 个相邻格。