Когда я увольняю этот запрос на MongoDB, я получаю все места вблизи 500 миль к указанным координатам. Но я хочу знать точное расстояние между указанными координатами и местоположением результата.MongoDB печать расстояние между двумя точками
db.new_stores.find({ "geometry": { $nearSphere: { $geometry: { type: "Point", coordinates: [ -81.093699, 32.074673 ] }, $maxDistance: 500 * 3963 } } }).pretty()
Мой выход выглядит следующим образом:
{
"_id" : ObjectId("565172058bc200b0db0f75b1"),
"type" : "Feature",
"geometry" : {
"type" : "Point",
"coordinates" : [
-80.148826,
25.941116
]
},
"properties" : {
"Name" : "Anthony's Coal Fired Pizza",
"Address" : "17901 Biscayne Blvd, Aventura, FL"
}
}
Я также хочу знать расстояние этого места от указанной координаты. Я создал индекс 2dsphere по геометрии.
Большое спасибо, он отлично работает. Любопытно узнать, почему вы умножили его на 1609? – SiMemon
@SiMemon Потому что есть 1609 метров в миле, и наоборот/на дистанционном мультипликаторе. Номер 3963, который вы использовали, - это преобразование «радиан» в мили, которое при использовании с точками координат GeoJSON было бы неверным. Радианы используются только с хранилищем, а запрос использует «устаревшие координатные пары». –