0

在我的firebase數據庫中給出了一個用戶列表,其位置(長& lat)和半徑(以公里爲單位),有效地定義了各個「行動圈」。獲取個人地理範圍內的用戶列表

{ 
    "users": { 
    "foo": { 
     "lat": 11.2549387, 
     "long": 17.3419559, 
     "radius": 50 
    }, 
    "bar": { 
     "lat": 9.5123445, 
     "long": 17.1221547, 
     "radius": 80 
    } 
    } 
} 

我現在的目標是要查詢其圈涵蓋了指定位置的所有用戶(再次長& LAT)。由於用戶列表可能很長,因此每次只計算每個用戶的距離就沒有意義。

我知道GeoFire for JavaScript,但這並不能完全解決我的問題,因爲它不適合用非固定半徑進行計算。

該解決方案應該是客戶端(JavaScript)或雲端功能。有關於此的任何想法?

回答

-1

Well GeoFire是您的解決方案,因爲它可以爲您優化查詢。

我對JavaScript知道GeoFire的,但這並不能完全解決我的問題 ,因爲它是不適合用 非固定半徑計算。

它將與您剛剛需要的非固定半徑一起工作,以便更新您的查詢的半徑和/或緯度與新用戶並且它將獲得附近的用戶。

對於Geofire,您需要額外的seprate節點來存儲每個用戶的地理位置對象

+0

感謝您的回答。恐怕這樣做可能會導致我的最終用戶(數據庫中有幾百個用戶)的響應時間相當長。或者我可能高估了處理時間? – sonovice

+0

它將被優化,geofire將索引geohash上的數據,而不是計算距離,它將使用geohash來查找最近的項目。檢查使用geohash的好處。 –

+0

因此處理時間不會很長 –