语境Geofire如何计算Firebase查询的边界地理杂凑?
我用Geofire与火力地堡一起,而现在,我得到了真的很好奇Geofire如何执行其查询。我从语义上理解,它是坐标和半径的函数,可以产生最小和最大哈希值。所以我觉得它的方式关头可与火力地堡看起来像这样
ref.child("users").orderByChild("g").startAt(minHash).endAt(maxHash).on('child_added', function(snapshot) { /* retrieved snapshot contains the geohashes in range */ });
当这两个(最小值和最大值)geohashes计算离给定输入。现在,这里是问题
问题(S)
假设我上面所述是正确的,如何这两个geohashes计算?当地理杂乱通常代表边界矩形时,他们如何在某个圆形区域内返回结果?最后,不同大小的两个geohashes如何具有相同的中心?
要澄清的是最后一部分:考虑下面的图像
由于通过平分的区域分成更小的区域geohashing作品,不同的大小(最小和最大)的两个散列怎么可以有相同的中心点?
假设
我想,也许这是为增加/减少哈希的原始值一样简单,但是这并没有太大的意义,因为增加/减少应该是相对的大小散列(可以说是“缩放”级别)和查询半径(如果我没有弄错的话)。