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.
Antworten
Zu viele Anzeigen?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
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