Я попытался найти точки геометрии по радиусу, я нашел учебное пособие, объясняющее, как это сделать.Mongoose найти точки геометрии по радиусу
Отрывок из учебника:
Во-первых, мы должны создать схему. Документы дают нам несколько примеров того, как хранить геопространственные данные. Мы будем использовать устаревший формат для нашего примера. Рекомендуется хранить долготу и широту в массиве. Документы предупреждают о порядке значений, долгота на первом месте.
var LocationSchema = new Schema({
name: String,
loc: {
type: [Number], // [<longitude>, <latitude>]
index: '2d' // create the geospatial index
}
});
Сначала вы можете создать метод в контроллере, который может выглядеть примерно так:
findLocation: function(req, res, next) {
var limit = req.query.limit || 10;
// get the max distance or set it to 8 kilometers
var maxDistance = req.query.distance || 8;
// we need to convert the distance to radians
// the raduis of Earth is approximately 6371 kilometers
maxDistance /= 6371;
// get coordinates [ <longitude> , <latitude> ]
var coords = [];
coords[0] = req.query.longitude;
coords[1] = req.query.latitude;
// find a location
Location.find({
loc: {
$near: coords,
$maxDistance: maxDistance
}
}).limit(limit).exec(function(err, locations) {
if (err) {
return res.json(500, err);
}
res.json(200, locations);
});
}
Ссылка на руководство: How to use Geospatial Indexing in MongoDB with Express and Mongoose
После реализованного источника из учебника в моем проекте я Бесполезный 'получать от базы данных правильные точки по радиусу (точки не были внутри радиуса).
Мой вопрос в том, как я могу получить точки геометрии по радиусу (километры или метры не имеют значения)?
Спасибо, Майкл.