estoy usando MongoDB consultas geoespaciales - $near
, geoNear
, etc. - y me gustaría saber cómo convertir el resultado del comando dis
geoNear
así como la radius
argumento para $within
consultas hacia/desde unidades legibles como millas o kilómetros.MongoDB geo distancia/radio a unidades útiles
Respuesta
si sus datos están en coordenadas geográficas (es decir, 30.47921 N -121.45724 W), entonces necesita convertir su proyección subyacente con las unidades que desee (elija una proyección que preserve la distancia) o necesita convertir la distancia en coordenadas a algo así como millas.
Usar la fórmula para el cálculo de Haversine http://www.movable-type.co.uk/scripts/latlong.html
¡Gracias por tu respuesta! Mis datos son, de hecho, puntos de latitud/longitud, y pude usar la fórmula de Haversine para calcular la distancia entre los resultados y el punto de origen conectando ambos conjuntos de puntos lat/lon, pero todavía no estoy seguro de qué hacer específicamente con 'dis' y 'radio'. ¿Podría aclarar a qué se refería con "convertir su proyección subyacente"? Parece que podría ser más simple convertir 'dis' que enchufar ambos conjuntos lat/lon, ¿no? ¿Tendría que reorganizar la fórmula de Haversine para que se ajuste a mis necesidades aquí? Si es así, ¿a qué variable (s) de la ecuación se puede conectar 'dis'/'radius'? –
Hola, Chris, tuve una pregunta similar (http://stackoverflow.com/questions/3878702/mongodb-bound-queries-how-do-i-convert-mile-to-radian). Si no les molesta, ¿pueden explicar con más detalle la solución? ¿Tienes que usar map/reduce? ¡Gracias de nuevo! – Abe
Si están usando Mongo> 1.8, pueden usar el modelo esférico: http://www.mongodb.org/display/DOCS/Geospatial+Indexing#GeospatialIndexing-TheEarthisRoundbutMapsareFlat – TheSteve0
Uso de comandos 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 una error que siempre permite que el nuevo comportamiento de los sistemas de coordenadas esféricas devuelva la distancia en metros (según las coordenadas WGS84).
La documentación indica que el dar el parámetro $near
en coordenadas heredadas en lugar de GeoJSON aún debe devolver radianes. Esto ha sido arreglado en versiones más nuevas.
El informe de error: Bug #13540
- 1. Unidades para usar para maxdistance y MongoDB?
- 2. Google Map GEO Results
- 3. Android GEO Location Tutorial
- 4. Ubicación geo inversa con OpenStreetMap
- 5. Android Intent-filter for GEO-URI
- 6. Mejor JavaScript Geo gráfico/biblioteca de mapas
- 7. Trazar geo-ubicaciones en Worldmap con Matlab
- 8. Útiles guiones F #
- 9. Útiles utilidades WPF
- 10. ¿Hay marcos Silverlight útiles?
- 11. MongoDB Security
- 12. ¿Comenzar a probar unidades en VS2010?
- 13. MongoDB: BSON a JSON
- 14. SQL a MongoDB?
- 15. Proyectos útiles en Haskell
- 16. Unidades iTextSharp
- 17. Configurar y usar el servidor de maquetas de mongodb para pruebas de unidades
- 18. ¿Pequeñas funciones útiles en R?
- 19. Útiles herramientas de codificación Java
- 20. impulsar un nuevo valor a MongoDB gama interior - mongodb/php
- 21. ¿Cómo puedo enviar artículos Stackoverflow útiles a mi Kindle?
- 22. Reemplazar unidades de función
- 23. mongodb tipo cambiar a matriz
- 24. Exportación de MySQL a MongoDB
- 25. ¿Está MongoDB orientado a objetos?
- 26. Integración de MongoDB a Java
- 27. ¿Transfiere MongoDB a otro servidor?
- 28. Conectando a MongoDB desde MATLAB
- 29. Cómo buscar gemas ruby útiles
- 30. Plantillas útiles de código Delphi
Parece que hay una respuesta mucho mejor que la que marcó correcta. Es posible cambiarlo? – JohnAllen