Wenn ich diese Abfrage auf MongoDB feuere, bekomme ich alle Orte in der Nähe von 500 Meilen zu den angegebenen Koordinaten. Aber ich möchte den genauen Abstand zwischen den angegebenen Koordinaten und dem Ergebnisort wissen.MongoDB Druckabstand zwischen zwei Punkten
db.new_stores.find({ "geometry": { $nearSphere: { $geometry: { type: "Point", coordinates: [ -81.093699, 32.074673 ] }, $maxDistance: 500 * 3963 } } }).pretty()
Meine Ausgabe wie folgt aussieht:
{
"_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"
}
}
ich die Entfernung dieses Ortes von der angegebenen Koordinate auch wissen wollen. Ich habe den 2Dsphere-Index für die Geometrie erstellt.
Vielen Dank, es funktioniert perfekt. Neugierig zu wissen, warum hast du es 1609 vervielfacht? – SiMemon
@SiMemon Weil es 1609 Meter in einer Meile sind, und umgekehrt auf dem AbstandMultiplier. Die von Ihnen verwendete 3963-Nummer ist die Umwandlung von "Radianten" in Meilen, die bei Verwendung mit GeoJSON-Punktkoordinaten nicht korrekt sind. Radianten werden nur mit Speicher und Abfrage verwendet "Legacy-Koordinatenpaare". –