У меня есть GeoPoint s, которые хранятся как хранилища в хранилище в коллекции пользователей.
Используя мою текущую GeoPoint, мне нужно собрать документы / пользователей вокруг меня на основе заданного расстояния.В качестве примера мне нужно, чтобы окружающие меня пользователи находились в пределах 100 км.
Я выполнил поиск по stackoverflow и понял, что существует всего несколько вопросов о Firestore на основе GeoPoint.В соответствии с теми, что я построил запрос, подобный приведенному ниже,
function getUsers(lower, upper) {
let db = admin.firestore();
var usersRef = db.collection('users')
.where('location', isGreaterThan, lower)
.where('location', isLessThan, upper);
var users = usersRef.get();
return users;
}
Но мой вопрос:
Как я могу построить «нижние» и «верхние» GeoPoints на основе заданного расстояния?
Я немного запутался, поскольку GeoPoints состоят из долготы и широты, которые представляют точку на карте.Имея две точки (нижнюю, верхнюю) на карте, можно ли получить ограничивающий круг с радиусом 100 км?
Также, пожалуйста, дайте свои предложения, если у вас есть более эффективные решения для достижения этой цели с помощью GeoPoint в пожарном депо.Разве мы не можем передать мою текущую GeoPoint и значение радиуса, которое в конечном итоге дает документы вокруг этого круга?