Javascript 查询Geofire以查找该区域中的前X个记录数?

Javascript 查询Geofire以查找该区域中的前X个记录数?,javascript,angularjs,firebase,ionic-framework,geofire,Javascript,Angularjs,Firebase,Ionic Framework,Geofire,试着用Geofire来概括我的想法,所以现在让我们假设我的firebase数据库对美国各地的酒吧进行排名。在本例中,我的firebase查询将返回全国排名前100的酒吧的列表。如果将地图缩小到全国范围,Geofire能否仅返回全国排名前100的酒吧?此外,如果地图放大到纽约,Geofire是否也只能返回纽约的前100名?换言之,我想返回给定查看区域的前100名,其中列表随着列表的移动而明显变化。它能处理这个吗?如果是这样,我能看到的例子是什么 提前谢谢 您可以使用geoquery设置放大和缩小的

试着用Geofire来概括我的想法,所以现在让我们假设我的firebase数据库对美国各地的酒吧进行排名。在本例中,我的firebase查询将返回全国排名前100的酒吧的列表。如果将地图缩小到全国范围,Geofire能否仅返回全国排名前100的酒吧?此外,如果地图放大到纽约,Geofire是否也只能返回纽约的前100名?换言之,我想返回给定查看区域的前100名,其中列表随着列表的移动而明显变化。它能处理这个吗?如果是这样,我能看到的例子是什么


提前谢谢

您可以使用geoquery设置放大和缩小的中心和半径

var geoQuery=geoFire.query{ 中间:[10.38,2.41], 半径:10.5 }; var center=geoQuery.center;//中间==[10.38,2.41] var radius=geoQuery.radius;//半径===10.5 geoQuery.updateCriteria{ 中间:[-50.83100.19], 半径:5 }; center=geoQuery.center;//中间==[-50.83100.19] radius=geoQuery.radius;//半径===5 geoQuery.updateCriteria{ 半径:7 }; center=geoQuery.center;//中间==[-50.83100.19]
radius=geoQuery.radius;//radius===7谢谢你的帮助。因此,您给出的示例将显示的条数限制为100条,但它是否可以用于返回该区域中的前100条?如果纽约有10000家酒吧,我们只想展示前100家。换句话说,bars数组中的100条记录是如何排序的?或者,不管我们想按哪个级别排序,查询都只是停留在100。相反,我们是否可以在给定区域的前100个条中加载条数组?geofire只能提供您记录的键,然后您可以使用该键查询其他记录。因此,要获得排名信息,您必须查询半径内的所有关键字,然后进行排名比较。您可以将排名信息放入密钥中,即firebase_key_rank,并在查询10k记录之前对密钥进行排名,因此您只能查询100条记录,但仍需要查询所有10k密钥。