自分の位置(長さが&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)またはクラウド機能のいずれかである必要があります。その上の任意のアイデア?
ありがとうございます。私は、これを実行すると、エンドユーザー(データベースで数百人のユーザー)の応答時間がかなり長くなる可能性があります。それとも、処理時間を過大評価するのでしょうか? – sonovice
これは最適化され、geofireはgeohash上のデータを索引付けするため、距離を計算する代わりにgeohashを使用して最も近い項目を検索します。 geohashを使用する利点をチェックしてください。 –
処理時間がそれほど長くなることはありません –