嘿,我剛剛完成建設用火力和GeoFire實時谷歌地圖這篇文章。 GeoFire非常酷且易於使用。它允許你使用lon lat和radius來查詢。它返回一個可用於查詢您的Firebase數據庫的密鑰。您可以在創建geoFire對象時設置密鑰,以滿足您的需求。它通常是一個可以用來獲取與該距離相關聯的對象的引用。
這裏是geoFire鏈接: https://github.com/firebase/geofire-js
下面是一個例子使用案例:
你有一個經度緯度,你得到了使用導航:
var lon = '123.1232';
var lat = '-123.756';
var user = {
name: 'test user',
longitude: lon,
latitude: lat
}
usersRef.push(user).then(function(response) {
var key = response.key;
var coords = [lon, lat];
geoFire.set(key, coords, function(success){
console.log('User and geofire object has been created');
});
})
現在你可以查詢用戶使用:
// Set your current lon lat and radius
var geoQuery = geoFire.query({
center: [latitude, longitude],
radius: radiusKm
});
geoQuery.on('key_entered', function(key, location, distance) {
// You can now get the user using the key
var user = firebaseRefUrl + '/' + key;
// Here you can create an array of users that you can bind to a scope in the controller
});
如果你正在使用谷歌地圖。我建議你使用角度谷歌地圖。 它是一個非常酷的谷歌地圖指令,需要一系列標記和圓圈。因此,當控制器中的$ scope.markers或$ scope.circles發生變化時,它將自動應用到地圖上,而不會有任何雜亂的代碼。他們有很好的文檔。
這裏是一個鏈接: http://angular-ui.github.io/angular-google-maps/
什麼他的建議是,你把經度優先級標記列表,並通過緯度優先另一個列表。然後,您查詢兩個列表,並查看列表相交的位置。 –