Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Proyeccion rectangular a sexagesimal (https://www.clubdelphi.com/foros/showthread.php?t=73044)

dario61081 28-03-2011 22:17:42

Proyeccion rectangular a sexagesimal
 
Saludos a todos. me he encontrado en un dilema. he estado tratando de desarrollar un componente que me grafique en un plano (utilizando un panel por ejemplo) y esta con el movimiento del cursor me devuelva su correspondiente en coordenadas sexagesimales (con en la cartografía). me he tomado como un proyecto personal a fin de mejorar mis conocimientos del campo GIS.

por aclarar un poco mi idea.

el cursor se mueve en el punto 34,89 y con las respectivas ecuaciones, debería de obtener como resultado -25,842033 -059,932000.

Alguien conoce un foro donde me pueda informar? ..

saludos cordiales

Dan :D

gatosoft 30-03-2011 18:58:58

Hola Dan, no conozco un foro del tema, y pues si nos diriges la pregunta a nosotros no veo una pregunta concreta... ¿exactamente que te detiene?

Voy a tratar de explicar la situación como yo la veo:

1) Dibujas un plano sobre el canvas de un control... por ejemplo un panel.

2) Cuando pintaste tu plano, debiste tener claro que estas utilizando una escala... de Kilometros o metros a Pixeles, es decir:

El plano que dibujaste sobre el canvas del panel tiene coordenadas (0,0) en la esquina superior izquierda, y coordenadas (Panel.Width, Panel.Heigth) en la parte inferior derecha.

Debiste por tanto identificar que por ejemplo 200 pixeles (del panel) equivalen a 15 kilometros (de tu plano).
Debiste identificar tambien que en la posicion (0,0) del panel correspondía a las coordenadas (-25,842033 -059,932000.) del plano...

3) Debes detectar la posicion del cursor sobre el panel cuando pases el raton sobre el componente o cuando hagas click en un punto: Esto se logra con OnMouseMove (¿o es OnMouseOver?, no recuerdo) y con OnMouseDown... ambas te proporcionan los valores X,Y relativos al panel.

4) Dentro de cualquiera de estos eventos, cuando leas la posicion de tu cursor (x,y) en pixeles, los podrás transformar a kilometros mediante una regla de tres y de aqui los podras pasar a tus coordenadas según la formula que supongo que tendras...


¿Estoy bien con respecto a lo que has traajado?, ¿lo has visto de una manera diferente?, ¿exactamente en que punto te quedas?

Un saludo,

dario61081 30-03-2011 20:07:11

Correcto, veo que haz interpretado correctamente mi pregunta.. :D

lo que he hecho de momento es tomar un tcustomcontrol y ver la manera de graficar mi map que lo tengo en gif.

entonces:

1. recree un .pas con las funciones que tratan directamente con el gif.
(carga, dibujo, ubicacion respecto a 0,0 del panel)
2. "recrear" una funcion que me haga los calculos de conversion.

por ejemplo en OnMouseOver, bajo mi mapa tengo un label que muestra en "RealTime" la supuesta posición en coordenadas sexagecimales. :rolleyes:

lo que no me cuadra, es como tomar los x,y y hacer lo necesario de que me interprete la relación espacial sin alterar mi cuadro (0,0,map.witdh, map.heigth) :confused:

3. ademas, como reto personal, luego de solucionar por supuesto el punto 2. es de poder mover toda la imagen (OnDrag) y que esta me siga dando la información que necesito.

a modo de comentario, de suponer la relacion en metro, kilometros, no es mala idea. tendre que ver si inplemento mas adelante. :D

espero poder terminar una versión previa y subirlo para ver si llego a cotar con mas ayuda.

saludos cordiales.
Dan.

fjcg02 30-03-2011 23:27:20

Es algo parecido a esto ? Mira la imagen que adjunto en el post

http://www.clubdelphi.com/foros/showthread.php?t=62698

Saludos


La franja horaria es GMT +2. Ahora son las 18:53:00.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi