可以使用geoquery設置圓心和半徑的放大和縮小
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元喜歡的方式,調用取消。
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();
}
});
reference doc
感謝您的幫助。所以,你給的例子限制了顯示100「條」數,但可以把它用於返回該區域中的前100名?如果在紐約萬條,我們只想顯示換句話說前100名,如何在100所記錄的條排列有序?或者是簡單地停止在100的查詢,而不管我們想要命令的「等級」。相反地,我們可以用給定面積的前100個條柱加載條形陣列嗎? – MacD
geofire只能給你記錄的鍵,就可以使用該密鑰來查詢其他記錄。所以要獲得排名信息,您必須查詢半徑內的所有密鑰,然後進行排名比較。你可以把排名的關鍵,即(firebase_key_rank)信息,以及排名前查詢10K記錄的關鍵,所以你只能查詢100的記錄,但你仍然需要查詢所有10K關鍵的。 –
明白了。那就是我需要知道的。謝謝.. – MacD