Pregunta

Estoy usando MongoDB consultas geoespaciales - $near, geoNear, etc. - y me gustaría saber cómo convertir el resultado del comando dis geoNear, así como el argumento radius para consultas $within a / de lectura unidades como millas o kilómetros.

¿Fue útil?

Solución

Si los datos están en coordenadas geográficas (es decir, N 30.47921 -121.45724 W), entonces usted necesita para convertir su proyección subyacente con las unidades que desea (seleccione una proyección que conserva la distancia) o es necesario convertir la distancia en coordenadas a algo millas similares.

Usar la fórmula Haversine para los cálculos http://www.movable-type.co.uk/scripts/latlong. html

Otros consejos

Mediante el comando geoNear por un valor dis en kilómetros agregar el parámetro:

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

Nota Si está utilizando la versión 2.6.0 mongodb hay un error que siempre permite que el nuevo comportamiento de sistemas esférica a distancia en metros (retorno sobre la base de coordenadas WGS84) de coordenadas.

La documentación que da el parámetro $near en coordenadas de legado en lugar de GeoJSON todavía deben volver radianes. Esto se ha corregido en las versiones más recientes.

El informe de error: legado bug # 13540

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top