Yarıçaplara göre coğrafi noktaları bulmayı denedim, nasıl yapılacağını açıklayan öğretici buldum. öğreticisindekiMongoose, coğrafi noktaları yarıçap olarak bul
Parçacığı:
Önce bir şema oluşturmanız gerekir. Dokümanlar, coğrafi verilerin nasıl saklanacağına dair bazı örnekler veriyor. Örneğimiz için eski biçimi kullanacağız. Enlem ve boylamı bir dizide saklamanız önerilir. Dokümanlar, değerlerin sırasına göre uyarıda bulunur, öncelikle boylam gelir. Ben yapmadım projeme öğreticisindeki uygulanan bir kaynaktan sonra How to use Geospatial Indexing in MongoDB with Express and Mongoose
:
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);
});
}
Referans öğretici için:
var LocationSchema = new Schema({
name: String,
loc: {
type: [Number], // [<longitude>, <latitude>]
index: '2d' // create the geospatial index
}
});
Öncelikle böyle bir şey bakabilirsiniz controller içerisinde bir yöntem oluşturabilir Veri tabanından doğru noktalardan yarıçapı almalıdır (noktalar yarıçap içinde değildi).
Sorum şu ki, coğrafi noktaları yarıçap (kilometre veya metre önemli değil) olarak nasıl alabilirim?
Teşekkürler, Michael.