Frage

Ich bin mit MongoDB geospatial Abfragen - $near, geoNear usw. - und ich würde gerne wissen, wie das dis Ergebnis des geoNear Befehls drehen sowie das radius Argument für $within Abfragen zu / von lesbaren Einheiten wie Meilen oder Kilometer.

War es hilfreich?

Lösung

Wenn Sie Ihre Daten in geografischen Koordinaten (dh 30,47921 N -121,45724 W), dann müssen Sie die zugrunde liegende Projektion mit den Einheiten konvertieren Sie wollen (eine Projektion, dass Konserven Abstand wählen) oder Sie müssen den Abstand in Koordinaten, um etwas konvertieren wie Meilen.

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

Andere Tipps

Mit geoNear Befehl für einen dis Wert in Kilometer fügen Sie den Parameter:

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

Hinweis wenn Sie mit MongoDB Version 2.6.0 gibt es einen Fehler, die immer das neue Verhalten für sphärische Koordinatensysteme Rückkehr Abstand in Metern (basierend auf WGS84-Koordinaten).

ermöglicht

Die Dokumentation besagt, dass geben die $near Parameter in Legacy-Koordinaten anstatt GeoJSON sollte noch Radiant zurück. Dies hat in neueren Versionen behoben.

Der Bug-Report: Bug # 13540

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top