geohash算法真的能搜索到周围餐馆吗

最近看到网上有篇文章写用geohash方法搜索周围餐馆:
点击连接文章
仔细阅读后发现可能有问题。
按照其中的搜索方法,给地球所有地方编码,规则如下:

11 10
01 00

然后提高精度,对每个象限再次按照如上编码,依次循环编下去,无限提高精度,那么整个地球的编码看起来应该如下图所示:

geohash算法真的能搜索到周围餐馆吗_第1张图片
其中A点的编码是:110000000000循环,B点编码是11001100000000000循环,假如我想获取A点周围点,那么除非我把搜索精度调整到全球范围,也就是精度为0,全局搜索,才能获取到四个象限的点,如果用11匹配,则只能匹配到第一象限的所有点,另外三个象限搜索不到任何点,而对于B点,同样道理,如果用110011搜索,则只能搜索到其左上方1/32象限的所有点,对于其他三个方向却搜索不到任何点,如果用1100搜索则搜索到所有它所在1/16像素内所有点,但是相应的精度损失了。

也就是说,这种算法能搜索范围的精度依赖与中心点的位置,如果这个点位于较大象限比如1/4或者1/16这种象限的边缘,那么精度就很低,如果这个点位于较小象限比如几万或者几百万分之一的象限边缘,那么精度就可以很高。这中间是可以用计算公式来表达,应该是成反比的。

不过后来我在网上找到了此类问题的解决方案:
解决方案
以后有空再来研究下吧。

你可能感兴趣的:(算法)