Algorithm 地理哈希-为什么需要交错索引值?

Algorithm 地理哈希-为什么需要交错索引值?,algorithm,geohashing,Algorithm,Geohashing,我已经看过关于Geohash的文章。根据作者的说法,计算散列的最后一步是交错x和y索引值。但这真的有必要吗?只要哈希表是根据修改过的索引规则构建的,就有适当的理由不将这些值串联起来吗 GeoHash提供了诸如任意精度和 从代码末尾逐渐删除字符的可能性 减小其尺寸(并逐渐失去精度) 如果您只是将x和y坐标连接起来,那么用户在试图降低精度时必须更加小心,小心地从x和y坐标中删除正确数量的字符。有一个相关的(而且更重要的)比任意精度更重要的原因是:具有公共前缀的geohash彼此非常接近。公共前缀越长

我已经看过关于Geohash的文章。根据作者的说法,计算散列的最后一步是交错x和y索引值。但这真的有必要吗?只要哈希表是根据修改过的索引规则构建的,就有适当的理由不将这些值串联起来吗

GeoHash提供了诸如任意精度和 从代码末尾逐渐删除字符的可能性 减小其尺寸(并逐渐失去精度)

如果您只是将x和y坐标连接起来,那么用户在试图降低精度时必须更加小心,小心地从x和y坐标中删除正确数量的字符。

有一个相关的(而且更重要的)比任意精度更重要的原因是:具有公共前缀的geohash彼此非常接近。公共前缀越长,越接近

54.321 -2.345 has geohash gcwm48u6
54.322 -2.346 has geohash gcwm4958
(请参阅以尝试此操作)

此功能可以快速查找附近的点(尽管有一些),并且只起作用,因为我们将两个维度交错以获得某种近似的二维邻近度量

随着维基百科条目的继续:

在数据库中使用时,Geohash数据的结构有两个 优势。首先,由geohash索引的数据将具有 连续切片中的给定矩形区域(切片数 取决于所需的精度和geohash“故障”的存在 “行”)。这在需要查询的数据库系统中特别有用 在单个索引上比在多个索引上更容易或更快 查询。第二,这个索引结构可以用于 快速而肮脏的近距离搜索-最近的点通常位于 最近的地理哈希


请注意,相反的情况并不总是正确的-如果两个点恰好位于细分的任一侧(例如赤道的任一侧),则它们可能非常接近,但没有公共前缀。因此,我前面提到了复杂性。

是的,你是对的-没有想到这一点,因为对于我正在构建的geohash,没有必要降低精度。-谢谢