#mongodb #express #mongoose
#mongodb #экспресс #мангуст
Вопрос:
Это мой url =/location/23.605835/85.277221 // широта, а затем долгота
//This is my code to calculate distance
exports.getDistance = async (req, res, next) => {
const { lat } = req.params;
const { lng } = req.params;
const distances = await Seller.aggregate([
{
$geoNear: {
near: {
type: 'Point',
coordinates: [lat * 1, lng * 1],
},
spherical: true,
distanceField: 'distance',
distanceMultiplier: 0.001,
},
},
]);
res.status(200).json({
status: 'success',
data: {
data: distances,
},
});
};
Вывод
{
"status": "success",
"data": {
"data": [
{
"_id": "5fc34a0b1ac1e10d1042d8ca",
"location": {
"type": "Point",
"coordinates": [
23.369677,
85.321093
]
},
"name": "Location One",
"__v": 0,
"distance": 5.337871594014329
}
]
}
}
Проблема здесь в том, что расстояние результата полностью отличается от реального расстояния / расстояния Google.
Исходное расстояние составляет около 40 км, и это дает мне 5,3 км.
Я не знаю, что делать, пожалуйста, помогите мне. Спасибо!
Комментарии:
1. Я поиграл и нашел то же самое. Хотя на этот раз документы довольно плохие.
2. Я тестировал на картах Google и сайтах калькуляторов разными способами, и все они даже проходили (потому что это небольшое расстояние), Земля составляет около 25,6 км. Я бы разместил ваш запрос на форуме разработчиков . Возможно, Google подсчитывает некоторую грубость в поле, но большинство карт дают ~ 26