Pregunta

Estoy a cargo de un programa que se utiliza para crear un conjunto de nodos y caminos para el consumo de un vehículo terrestre autónomo. El programa realiza un seguimiento de la ubicación de todos los elementos en su mapa que indica la posición del elemento como x metros al norte y al este de metros Y el punto de origen 0,0. En el mundo real, el vehículo conoce la ubicación de origen de la latitud y longitud, como se determina por un sistema DGPS y se ha reducido una precisión de un par de centímetros. Mi programa es ignorante de las coordenadas Lat Long.

Es uno de mis objetivos para modificar el programa para realizar un seguimiento de largas coordenadas lat de artículos en adición a un punto de origen y artículos x, y la posición en relación a dicho origen. A primera vista, parece que voy a modificar el programa para permitir que las largas coordenadas de latitud del origen que se pasan en, y después de eso deseo que el programa calculará automáticamente el lat largo de cada artículo actualmente en un mapa. Por lo que he investigado hasta ahora, creo que voy a tener que averiguar las matemáticas detrás de la conversión a coordenadas Lat Long desde una proyección UTM como donde puedo especificar los puntos de origen y meridianos, etc en contraposición a lo que se define ya por UTM.

He venido a pedirte SIG programadores, estoy en el camino correcto? Me parece como que hay mucho para envolver los cabeza, y no estoy seguro de si la respuesta no es algo tan simple como, "oh sí theres una conversión de metros a Lat Long, aquí"

En la actualidad, debido a la naturaleza de DGPS, el sistema realmente no tiene que preocuparse acerca de las ubicaciones más de oh, lo ... 40 GC? radio de distancia desde el origen. Teniendo en cuenta esto, y el hecho de que necesito para asegurarse de que el error en mis coordenadas no es mayor de 0,5 metros, ¿Necesito algo más complejo que una simple latitud / longitud constante de conversión a metros?

Estoy hasta las rodillas en los materiales aquí. Podría utilizar algunos consejos sobre qué conceptos a la investigación.

Gracias tanto!

¿Fue útil?

Solución

Dado un punto de inicio en la latitud / longitud y una distancia y el rumbo, encontrar el punto final es un cálculo geodésica. Hay un gran resumen de los cálculos geodésicos y errores en la proj.4 página web . Ellos llegan a la conclusión de que el uso de un modelo esférico puede obtener resultados para la distancia entre los puntos con error a lo sumo 0,51%. Eso, combinado con una fórmula para traducir entre WGS -84 y ECEF (ver el "LLA a ECEF" y "ECEF a LLA" secciones, parece que se obtiene lo que necesita.

Si usted quiere conseguir realmente los errores clavado por la proyección de su inversa mapa plano de coordenadas WGS-84, proj 0.4 es un paquete de software de proyección. Tiene código fuente, y viene con tres de comando utilidades de línea - proj, que convierte a / de proyección cartográfica y datos cartesianas; cs2cs, que convierte entre las diferentes proyecciones cartográficas; y geod, que calcula las relaciones geodésicas.

El USGS publica un tratamiento muy exhaustivo de mapa proyecciones .

Otros consejos

Me haría un cálculo completo en marcha si es posible. De esta manera siempre va a ser lo más preciso que puede ser.

Si se esté utilizando C ++ la GDAL es una muy buena biblioteca.

Para un rango de 40 km, es posible que se aproxima al mundo a una superficie plana en 2D puede funcionar, aunque un UTM transformar sería la manera ideal de ir - en cualquier caso, me defiendo con el co-WGS84 real ordenadas y elipsoide para los cálculos tales como distancia ortodrómica, o cojinetes de cálculo.

Si se aburre, se podría bajar una línea similar a algo que he estado trabajando, que puede ser utilizado como una clase base para los diferentes puntos de referencia tales como OSGB36 o WGS84 ...

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