2010-09-17 18 views
5

Estoy tratando de averiguar cómo trazar los puntos de latitud/longitud WGS84 en un mapa de bits, pero no puedo deducir las matemáticas necesarias para convertir los puntos lat/lon en coordenadas que puedan trazarse. ¿Alguien podría darme algunos consejos o ejemplos sobre cómo hacer esto?¿Cómo marco las coordenadas de latitud/longitud en la pantalla?

gracias

Colin

+8

¿Qué [proyección] (http://en.wikipedia.org/wiki/Map_projection) está usando? Si no sabe lo que significa esa pregunta, considere "conocer las proyecciones de mapas" para ser su primer puntero. –

+0

Además, cuando dice que no puede "descifrar" las matemáticas, ¿significa que ha encontrado las fórmulas de conversión y no sabe cómo aplicarlas en su programa, o significa que no sabe qué Las fórmulas son? –

+0

Estoy hablando de cómo convertir un lat/lon a un XY para trazar en un mapa de bits – colin

Respuesta

5

Pasando latitud longitud en x, y para el trazado sobre una superficie 2D plana como un mapa de bits es un tema grande y complicado.

Para obtener más información al respecto, consulte map Projections en wikipedia. En general, sitios web como google maps y bing resuelven este problema usando una proyección mercator en una esfera perfecta que puede cubrir fácilmente la mayor parte de la tierra (excepto el polo norte/sur) y ser "suficientemente buena" para la mayoría de los propósitos. Sin embargo, esas son algunas grandes cosas y realmente depende de cuán precisas sean sus imágenes y lo que necesitan preservar.

Lamentablemente, no conozco delPI lo suficiente como para proporcionar el código fuente, pero la matemática de las proyecciones de Mercator está bien documentada here.

Si la precisión no es un problema y sus puntos están "juntos", el método más simple sería simplemente usar un factor constante y desplazamiento para cambiar la latitud/longitud en valores xey que se ajusten a su mapa de bits.

Esto podría hacer que las fotografías se suavicen levemente en dirección norte/sur, pero en general producirán imágenes muy parecidas a Mercator sin los logaritmos naturales y las llamadas sin/tangentes.

0

Como ya se ha mencionado por MerickOWA, no hay una respuesta correcta a la pregunta ya que depende de la escala que se están trabajando en, y la precisión que necesita. Esto estará determinado en gran parte por lo que está en el .bmp del que está hablando. Si se trata de un mapa global en la proyección de Mercator, entonces la respuesta de Greg le dará algunos consejos. Si se trata de un mapa local, dependerá del dato que utilice el mapa y de la proyección utilizada (y el dato será en gran parte determinado por la autoridad nacional del país en cuestión). Habiendo dicho todo eso, si lo que desea hacer es proyectar un Lat Lon proporcionado por GPS (datum GS84) en un mapa local que cubra un área < 6 ° de latitud, entonces podría hacer algo peor que proyectar el WGS84 Lat Lon a un Proyección WGS84 UTM, luego escalar (y posiblemente) girar el mapa para que quepa en 2 coordenadas conocidas.

El enlace aquí debe dar un poco de ayuda http://www.uwgb.edu/dutchs/usefuldata/utmformulas.htm

+0

Cuando digo un mapa de bits, realmente estoy refiriéndome a un Timage con un mapa de bits en blanco. No deseo superponer los coords en un mapa o imagen solo tenerlos trazados en la pantalla en las posiciones relativas. Es más cómo tomar un latón y convertirlo a un XY en lugar de sobreponerlo a una imagen – colin

Cuestiones relacionadas