Convertir coordenadas GPS a cartesianas

Estoy elaborando un programa para móviles (En Symbian de Nokia), y lo que tengo que hacer es mostrar en un mapa (hecho por mi), unas determinadas cosas (que están descritas por sus coordenadas GPS).
   Me explico, lo que quiero es hacer alguna función (fórmula), que convierta las coordenadas GPS que recibo, en puntos (x, y) de mi mapa.
   Mi mapa es como una cuadricula (una matriz), que tiene 235 columnas (puntos del eje x), y 230 filas (puntos del eje y). También decir que los 235 puntos del eje x, corresponde con 20 km, y las 230 del eje y con otros 20 km.
   También hago notar que siempre tengo en el punto central (117, 115), un objeto que tiene su propia coordenada GPS, y en función de este objeto que siempre deberá estar situado en esa posición (117,115), debo pintar en el mapa los demás objetos que tienen su propia coordenada. Cuando cambian las coordenadas porque el objeto central se mueve, pues debo actualizar todo el mapa, para situar nuevamente el objeto en el punto central y todos los demás en función de este.
   No se si me he explicado, pero es sencillo, convertir las coordenadas GPS en coordenadas (x, y) de mi mapa, teniendo en cuenta las dimensiones del mapa, y que en la posición(117,115), siempre debe estar un objeto que tiene coordenadas GPS.
   Pensé en una simple regla de 3, si COORDENADAS_OBJETO_CENTRAL están en la posición (117,115), COORDENADAS_CUALQUIER_OTRO_OBJETO estará en la posición (x, y), siempre y cuando se pueda pintar porque no se sale del rango del tamaño del mapa. Pero esto no me termina de funcionar me falta algo, como la relación de cada punto (ya que 235 son 20 km)

1 Respuesta

Respuesta
1
En principio, intuyo un problema. Imagino que tu mapa es bidimensional, por lo que podemos obviar la altitud. De esta manera, sólo debemos reflejar latitud y longitud, por lo que se trataría de convertir unas coordenadas en otras. El problema está en que las coordenadas de origen (las del GPS) no están establecidas sobre un sistema ortonormal, es decir, de ejes perpendiculares. De hecho, las líneas de longitud son paralelas entre sí, pero las latitudes coinciden en los polos, por tanto no están uniformemente separadas.
Quizá te sería más útil transformas las coordenadas GPS a través de coordenadas polares, y no de coordenadas cartesianas.
Ok, sigo con la duda. Si lo transformo a coordenadas polares ¿serviría para mi problema?, es que la verdad que en esto no estoy muy puesto, y necesito bastante ayuda.
¿Qué fórmulas tengo que aplicar para pasar la latitud-longitud a coordenadas polares?, y para que encuadre en mi mapa, que tiene 235x230 puntos (y representa una región de 20x20 km), ¿no tendría que tener en cuenta esto por algún lado?.
Lo dicho estoy muy verde, si me puedes ayudar en lo que puedas, te lo agradecería.
Muchas Gracias.
Pues hombre, si no tienes un a base de cálculo trigonométrico lo tienes muy mal para utilizar coordenadas polares (o esféricas).
Explicarte el proceso en este foro es imposible. De todas formas, si estás desarrollando un programa, debes tener nociones de programación. Échale un vistazo a este enlace y a ver si te sirve de base para desarrollar lo que necesitas:
http://www.google.es/url?sa=t&source=web&cd=4&ved=0CCsQFjAD&url=http%3A%2F%2Fwww.capitanlorenzana.com%2FUTILIDADES%2FCALCULADOR.xls&ei=tFtMTfy-L4it8gO_5fzVCw&usg=AFQjCNFJwVMhI_hydE8I2Uqu4ikw2qGsow
Gracias, ya lo resolví, te digo como lo hice por prestarme tu ayuda. Lo que hice fue irme a google maps, y ver la escala del mapa. Entonces busque una coordenada de latitud que no cambiara para dos puntos (la longitud si), y otros dos puntos donde no cambiara la longitud pero la latitud si, de esta manera puedo hacer una regla de tres, para saber cuanto cambia la latitud y longitud en 50 metros (que es la escala que puse en google maps). Con esto pues en mi mapa haga otra simple regla de tres con las constantes antes calculadadas y con la dimension de mi mapa y me dará cuantos cuadraditos en mi mapa se mueve un punto respecto a otro, ya que se como debe cambiar una coordenada cada 50 metros. Ya se que es un poco cutre, ya que no es exacto como tu bien dijiste por no estar sobre un eje ortonormal, pero para lo que lo quiero creo que da de sobra, porque solo lo quiero aplicar sobre mi zona geográfica, la isla de Tenerife, así que no afecta mucho esto, ya que prácticamente si que son ortonormales en una isla tan pequeñita.
Gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas