Как получить документы в пожарном депо на определенном расстоянии от моего текущего GeoPoint? - PullRequest
0 голосов
/ 02 октября 2018

У меня есть 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 и значение радиуса, которое в конечном итоге дает документы вокруг этого круга?

...