0

自分の位置(長さが&lat)と半径(キロメートル)を持つユーザのリストがfirebaseデータベースに与えられ、個々の「アクションサークル」を効果的に定義します。個々の地理的範囲内のユーザのリストを取得

{ 
    "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

よくGeoFireはあなたのために最適化されるため、あなたのためのソリューションです。

私には、JavaScriptのためGeoFireの承知していますが、それは 非固定半径の計算には適していませんので、これは完全に私 問題を解決していません。

これは固定されていない半径でも動作し、クエリの半径や緯度を新しいユーザーに更新するだけで、近くのユーザーが取得できます。

Geofireでは、各ユーザーのジオロケーションオブジェクトを保存するために余分なseprateノードが必要です

+0

ありがとうございます。私は、これを実行すると、エンドユーザー(データベースで数百人のユーザー)の応答時間がかなり長くなる可能性があります。それとも、処理時間を過大評価するのでしょうか? – sonovice

+0

これは最適化され、geofireはgeohash上のデータを索引付けするため、距離を計算する代わりにgeohashを使用して最も近い項目を検索します。 geohashを使用する利点をチェックしてください。 –

+0

処理時間がそれほど長くなることはありません –

関連する問題