Расчет с GPS локациями с мангустом? - PullRequest
0 голосов
/ 03 ноября 2018

У меня есть следующая схема Мангуста:

const GroupSchema = mongoose.Schema({
  ...
 gps: {
    type: Object,
    required: true
}
 ...
})

Объект GPS, например, выглядит следующим образом: {долгота: 53,05, широта: 54,56}

У меня есть пользователи с их текущей позицией GPS. Они могут искать группу, которая им близка. Поэтому они могут искать группы с радиусом, например, 10 км. Я могу использовать модуль geolib для расчета, находится ли точка GPS внутри круга или нет:

geolib.isPointInCircle(
 {latitude: 51.525, longitude: 7.4575},
 {latitude: 51.5175, longitude: 7.4678}, 
 10000

);

Проблема в том, что в моей базе данных много групп, и я не хочу загружать их все, каждый раз, когда я ищу группу. Есть ли способ включить эту функцию geolib уже при обращении к базе данных и получать только те группы, которые удовлетворяют условию. Может быть что-то вроде?

Group.findOne({},  geolib.isPointInCircle(
 usersGPS, gps,  5000), callback) 

Если это невозможно, у вас есть какие-либо другие решения или предложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...