Quando sto sparando questa query su MongoDB, sto ottenendo tutti i posti in prossimità di 500 miglia alle coordinate specificate. Ma voglio sapere la distanza esatta tra le coordinate specificate e la posizione del risultato.MongoDB stampa la distanza tra due punti
db.new_stores.find({ "geometry": { $nearSphere: { $geometry: { type: "Point", coordinates: [ -81.093699, 32.074673 ] }, $maxDistance: 500 * 3963 } } }).pretty()
mia uscita assomiglia:
{
"_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"
}
}
Vorrei anche conoscere la distanza di questo luogo dalla coordinare specificato. Ho creato l'indice 2dsphere sulla geometria.
Grazie mille, funziona perfettamente. Curioso di sapere perché lo hai moltiplicato per il 1609? – SiMemon
@SiMemon Perché ci sono 1609 metri in un miglio e vice/versa sulla distanzaMultiplier. Il numero 3963 che stavate usando è la conversione di "radianti" in miglia, che se usate con coordinate punto GeoJSON sarebbero errate. I radianti vengono utilizzati solo con storage e query utilizzano "coppie di coordinate legacy". –