5 Stimmen

MongoDB Geodistanz/Radius in nützliche Einheiten

Ich verwende MongoDB-Geodatenabfragen. $near , geoNear , usw. -- und ich würde gerne wissen, wie man die dis Ergebnis der geoNear sowie den Befehl radius Argument für $within Abfragen in/aus lesbaren Einheiten wie Meilen oder Kilometer.

19voto

tandem Punkte 201

Mit dem Befehl geoNear für einen dis-Wert in Kilometern fügen Sie den Parameter hinzu:

distanceMultiplier: (6371 * Math::PI / 180.0)

4voto

TheSteve0 Punkte 3523

Wenn Ihre Daten in geografischen Koordinaten vorliegen (z. B. 30.47921 N -121.45724 W), müssen Sie die zugrunde liegende Projektion mit den gewünschten Einheiten konvertieren (wählen Sie eine Projektion, die die Entfernung beibehält) oder Sie müssen die Entfernung in Koordinaten in etwas wie Meilen konvertieren.

Verwenden Sie die Haversinus-Formel für Berechnungen http://www.movable-type.co.uk/scripts/latlong.html

1voto

jlapoutre Punkte 1713

Beachten Sie, wenn Sie Mongodb Version 2.6.0 verwenden, gibt es einen Fehler, der das neue Verhalten für sphärische Koordinatensysteme immer aktiviert, um die Entfernung in Metern zurückzugeben (basierend auf WGS84 Koordinaten).

In der Dokumentation heißt es, dass die Angabe der $near in Legacy-Koordinaten statt in GeoJSON sollte weiterhin Bogenmaß zurückgeben. Dies wurde in neueren Versionen behoben.

Der Fehlerbericht: Fehler #13540

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X