现在,假设我的firebase数据库对美国各地的酒吧进行了排名。在这种情况下,我的firebase查询将返回全国排名前100的酒吧的评级列表。如果将地图缩小到全国,Geofire是否只能返回全国排名前100的条形图?此外,如果将地图放大到纽约,Geofire是否也只能返回纽约的前100名?换句话说,我希望返回给定的查看区域的前100名,其中列表明显地随着列表的移动而变化。它能处理这个问题吗?如果是这样的话,我能看到这个例子吗?
提前感谢!
发布于 2017-08-15 10:01:11
可以使用地理查询设置放大和缩小的中心和半径
var geoQuery = geoFire.query({
center: [10.38, 2.41],
radius: 10.5
});
var center = geoQuery.center(); // center === [10.38, 2.41]
var radius = geoQuery.radius(); // radius === 10.5
geoQuery.updateCriteria({
center: [-50.83, 100.19],
radius: 5
});
center = geoQuery.center(); // center === [-50.83, 100.19]
radius = geoQuery.radius(); // radius === 5
geoQuery.updateCriteria({
radius: 7
});
center = geoQuery.center(); // center === [-50.83, 100.19]
radius = geoQuery.radius(); // radius === 7
对于前100名,您可以使用类似于当您收到当前geoQery的100个元素时的方法,调用cancel。
var geoQuery = geoFire.query({
center: [10.38, 2.41],
radius: 10.5
});
var bars = []
var onKeyExitedRegistration = geoQuery.on("key_exited", function(key, location, distance) {
console.log(key + " exited query to " + location + " (" + distance + " km from center)");
bars.push(key);
if(bars.length>=100)
{
geoQuery.cancel();
}
});
https://stackoverflow.com/questions/45685349
复制相似问题