MongoDB geo distanza / distanza per unità utili
-
28-09-2019 - |
Domanda
Sto utilizzando query geospaziali MongoDB - $near
, geoNear
, ecc - e mi piacerebbe sapere come trasformare il risultato dis
del comando geoNear
così come l'argomento radius
per le query $within
da / leggibile unità come miglia o chilometri.
Soluzione
se i dati sono in coordinate geografiche (cioè 30,47,921 mila N -121,45724 W) allora avete bisogno di convertire il vostro proiezione sottostante con le unità che si desidera (scegliere una proiezione che conserve di distanza) oppure è necessario convertire la distanza in coordinate a qualcosa miglia come.
Usa la formula Haversine per i calcoli http://www.movable-type.co.uk/scripts/latlong. html
Altri suggerimenti
Utilizzando il comando geoNear per un valore dis chilometriche aggiungere il parametro:
distanceMultiplier: (6371 * Math::PI / 180.0)
Nota Se si utilizza MongoDB versione 2.6.0 c'è un bug che permette sempre il nuovo comportamento per sferica sistemi a distanza di ritorno in metri (sulla base di coordinate WGS84) di coordinate.
La documentazione che dare il parametro $near
in coordinate legacy, piuttosto che GeoJSON devono ancora tornare radianti. Questo è stato risolto nelle versioni più recenti.
Il bug report: bug # 13540