ubicados - MongoDB imprime distancia entre dos puntos
ejercicios de distancia entre dos puntos triangulos (1)
Puede usar la etapa de $geoNear
agregado $geoNear
para producir una distancia desde el punto consultado:
db.new_stores.aggregate([
{ "$geoNear": {
"near": {
"type": "Point",
"coordinates": [ -81.093699, 32.074673 ]
},
"maxDistance": 500 * 1609,
"spherical": true,
"distanceField": "distance",
"distanceMultiplier": 0.000621371
}}
]).pretty()
Esto le permite especificar "distanceField"
que producirá otro campo en los documentos de salida que contienen la distancia desde el punto consultado. También puede usar "distanceMultiplier"
para aplicar cualquier conversión a la distancia de salida según sea necesario (es decir, metros a millas, y teniendo en cuenta que todas las distancias GeoJSON se devuelven en metros)
También está el comando geoNear
con opciones similares, pero por supuesto no devuelve un cursor como salida.
Cuando estoy ejecutando esta consulta en MongoDB, obtengo todos los lugares en las proximidades de 500 millas a las coordenadas especificadas. Pero quiero saber la distancia exacta entre las coordenadas especificadas y la ubicación del resultado.
db.new_stores.find({ "geometry": { $nearSphere: { $geometry: { type: "Point", coordinates: [ -81.093699, 32.074673 ] }, $maxDistance: 500 * 3963 } } } ).pretty()
Mi salida se ve así:
{
"_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"
}
}
También quiero saber la distancia de este lugar desde la coordenada especificada. Creé el índice 2dsphere en geometría.