Получить список пользователей в пределах отдельного географического диапазона
Список пользователей с их местоположением (long & lat) и радиусом (в километрах) приведен в моей базе данных firebase, эффективно определяя отдельные "круги действия", например
{
"users": {
"foo": {
"lat": 11.2549387,
"long": 17.3419559,
"radius": 50
},
"bar": {
"lat": 9.5123445,
"long": 17.1221547,
"radius": 80
}
}
}
Теперь моя цель - опросить всех пользователей, чей круг охватывает определенное место (снова long & lat). Поскольку список пользователей может быть очень длинным, нет смысла просто рассчитывать расстояние до местоположения для каждого отдельного пользователя каждый раз.
Я знаю о GeoFire for JavaScript, но это не решает мою проблему полностью, потому что она не подходит для вычислений с нефиксированным радиусом.
Решение должно быть либо на стороне клиента (JavaScript), либо в виде облачной функции. Есть идеи по этому поводу?
1 ответ
Ну, GeoFire - это решение для вас, потому что оно оптимизирует запрос для вас.
Я знаю о GeoFire for JavaScript, но это не решает мою проблему полностью, потому что она не подходит для вычислений с нефиксированным радиусом.
Он будет работать с нефиксированным радиусом, вам просто нужно обновить радиус вашего запроса и / или широту в длину с новым пользователем, и он получит соседних пользователей.
Для Geofire вам нужен дополнительный отдельный узел для хранения объекта геолокации каждого пользователя