我有一个应用程序,我需要通过指定边界矩形来查询地理位置。由于geohashes将2D映射到1D,因此我可以通过这种方法找到满足查询条件(边界矩形)的所有geohashes的前缀。我试图谷歌,但我没有找到任何算法。
如果有一些库在C / c ++中有效地为我做这件事会很棒。即使没有库,我也可以使用算法解决方案。
答案 0 :(得分:1)
前缀将是边界矩形的geohash。
在geohashing中,geohash的偶数位对应于纬度,奇数位对应于经度。当我们从左到右进行时,我们会细化geohash指定的间隔。
考虑一个假设的geohash,其中110
位对应于经度。这告诉我们,我们对上半部分(90
到135
,0
)的点(90
到{{1}感兴趣所有经度(180
到{{1}的上半部分1
到0
,第一个180
}的第二个1
} })。因此,通过指定更长的字符串,您只需进一步细化间隔。
由于边界矩形被指定为geohash,因此您根本不需要做任何事情。