2014-01-18 9 views
6

誰かがFirebaseのジオコード(緯度/経度など)の保存や検索を試みたことがありますか?これはMongoDBに組み込まれている機能です。代わりにFirebaseをバックエンドとして使用することを検討しているので、Firebaseでこのシナリオをどのように処理するかを知る必要があります。Firebaseでのジオコーディングの処理?

ありがとうございます!

答えて

7

最近、Firebaseに位置情報を保存して照会できるライブラリが公開されています。Firebase要するに、これはFirebaseのすべてのキーが文字列であり、Firebaseがgeohashesとバウンディングボックスに対して適切なウィンドウ処理を行うことを可能にするstartAt()endAt()クエリをサポートしているため、簡単に実行できます。

実装の詳細と使い方については、live demossource code、およびそのblog postをGeoFireでチェックしてください。

0

こんにちは私は、firebaseとGeoFireを使用してリアルタイムのGoogleマップを構築しました。ジオファイアは本当にクールで使いやすいです。 lon latとradiusを使用してクエリを実行できます。 Firebaseデータベースを照会するために使用できるキーを返します。 geoFireオブジェクトを作成している間、キーを設定して、必要なものにします。通常は、その距離に関連付けられたオブジェクトを取得するために使用できるrefです。あなたは今

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'); 
    }); 
}) 

することができます:あなたがナビゲーターを使用してしまったことを、

あなたは経度緯度を持っています。ここではhttps://github.com/firebase/geofire-js

は、例えば、ユースケースである:ここで

はgeoFireへのリンクです

// 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 
}); 

IfあなたはGoogleマップを使用しています。私は、角度のGoogleマップを使用することをお勧めします。 マーカーとサークルの配列を取り入れた、本当にクールなGoogleマップのディレクティブです。だから$ scope.markersや$ scope.circlesがコントローラーで変わると、地図に自動的に適用されます。彼らは非常に良い文書を持っています。

ここにリンクがあります。 http://angular-ui.github.io/angular-google-maps/

関連する問題