我正在開發一個使用Firebase的Android應用程序,其中數據結構由酒店表格組成,其中包含城市名稱以及緯度和經度,如下圖所示。 在Firebase中篩選Android
現在,當用戶打開應用程序,她的位置被取爲經度,緯度,user.Using這些信息我想顯示的酒店使用火力地堡是接近用戶的列表的城市名稱等詳細信息。我怎樣才能做到這一點。請提前幫助並感謝您。
我正在開發一個使用Firebase的Android應用程序,其中數據結構由酒店表格組成,其中包含城市名稱以及緯度和經度,如下圖所示。 在Firebase中篩選Android
現在,當用戶打開應用程序,她的位置被取爲經度,緯度,user.Using這些信息我想顯示的酒店使用火力地堡是接近用戶的列表的城市名稱等詳細信息。我怎樣才能做到這一點。請提前幫助並感謝您。
您可能會發現Geofire是你在找什麼:
GeoFire設置爲JavaScript,Objective-C中, 和Java開源庫,允許你存儲和查詢一組的密鑰基於 他們的地理位置。在它的核心,GeoFire只需在字符串鍵處存儲 位置。但是,它的主要優點是 可能僅在特定地理區域內檢索那些密鑰 - 所有這些都是實時的。
使用查詢API,你可以做這樣,但考慮到火力爲您提供了多個錯誤WHERE子句,這裏是例子查詢API調用,爲你JSON:
Query query = database.child("hotelList").child("hid").orderByChild("latitude").startAt(somevalue).endAt(somevalue);
比
query.addValueEventListener()
....檢索數據像往常一樣,所以它將存儲過濾的數據而已,還有你需要一個多where子句,你可以做這樣的,裏面onDataChange()
,所以以後的數據進行過濾:
HotelModel room = dataSnapshot.getValue(HotelModel.class);
if(room.getLongtitude() > 123 && room.getLongtitude() < 41321)
{
//add data to listview or whatever
}