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.

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top