我有一个应用程序,需要通过指定边界矩形来查询geohash。由于geohashes将2d映射到1d,因此有一种方法可以找到满足查询条件(边界矩形)的所有geohash的前缀。我试着用谷歌搜索,但没有找到任何算法。
如果有一个库能在C/C++中高效地为我做这件事,那就太好了。即使没有库,我也可以使用算法解决方案。
最佳答案
前缀将是边界矩形的geohash。
在geohash中,geohash的偶数位对应于纬度,奇数位对应于经度。当我们从左到右进行操作时,我们优化geohash指定的间隔。
考虑一个假设的geohash,其位110
对应于经度这告诉我们,我们对所有经度(90
到135
)的上半部分(0
到90
,下半部分(180
到1
),上半部分(0
到180
,第一部分)的下半部分(1
到-180
)的点感兴趣。因此,通过指定一个较长的字符串,可以进一步细化间隔。
因为边界矩形被指定为geohash,所以根本不需要做任何事情。