Para SqlRanger

03/07/2004 - 06:14 por Pablo Fabian Savino | Informe spam
Hola ,
soy el del tema de las coordenadas, serias tan amable de pasarme esa/s
formulas de tu libro ?, y podrias darme un ejemplito en base a mi mensaje
anterior?, es que no me da en el mapa, o sea, el punto me aparece fuera de
lugar (no busco exactitud) pero queda lejos de donde deberia ser.

En cuanto a la escala que mencionas, creo que te referis al mapa o que
escala, dado que el mapa es mas grande que 600x300 px pero yo lo achique a
esa medida para que se vea en un web por medio de SVG.

Bueno, si no te quito tiempo y tranquilidad, me podrias dar una manito?

Saludos y perdon por parecer tan comodo , pero en internet no logro
encontrar la info y algun ejemplo de como hacer esto.

Chau!
 

Leer las respuestas

#1 SqlRanger [MVP .NET]
05/07/2004 - 10:22 | Informe spam
Para poder encontrar un punto en tu mapa tienes que saber qué tipo de
proyección está utilizando, no puedo ponerte todas las fórmulas porque son
complicadas y más de 50. Además las fórmulas no vienen adaptadas a la
representación en un ordenador sino que son genéricas, como se estudian en
la Universidad. Para poder adaptarlas tendría que volver a estudiarme el
libro por completo y no tengo ni tiempo ni ganas para ello. En todo caso
podría adaptar una de las transformaciones si me dices cual es la que se
está utilizando en el mapa, pero no todas. La cartografía la estudié hace
más de quince años y no he vuelto a tocarla desde entonces.

De todas maneras, las fórmulas que te di no dan las coordenadas del pixel en
el bitmap, sino coordenadas en unidades de longitud, conociendo un punto del
mapa, por ejemplo una esquina, y la escala. Además la orientación de los
ejes es diferente de la de la que se usa en la pantalla.

Sin saber qué tipo de proyección usa el mapa lo más que te puedo sugerir es
que uses una interpolación lineal, en esta no necesitas saber la escala,
pero sí necesitas saber:

H: altura del mapa en pixels
W: anchura del mapa en pixels
(Long0, Lat0): longitud y latitud de la esquina superior izquierda del mapa
(Long1, Lat1): longitud y latitud de la esquina inferior derecha del mapa

Con esto, las coordenadas de pantalla en pixels de un punto (Long, Lat),
tomando el origen de coordenadas en la esquina superior izquierda, el eje X
creciendo hacia la derecha y el eje Y creciendo hacia abajo (como se toman
normalmente en la pantalla) serían:

X = W * (Long - Long0) / (Long1 - Long0)
Y = H * (Lat - Lat0) / (Lat1 - Lat0)

Esto te dará un valor aproximado, si necesitas más exactitud deberías saber
el tipo de proyección cartográfica.

Saludos:

Jesús López

Preguntas similares