Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > HTML, Javascript y otros
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-12-2009
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Poder: 21
Cabanyaler Va por buen camino
Red face Llamada a exe desde fichero kml de Google Earth

Hola a todos. Espero que este mensaje esté bien posteado en esta parte del foro.

Trabajo en el desarrollo de una aplicación que de manera muy sencilla y a partir de coordenadas UTM las transforma a geográficas y posiciona los puntos indicados por dichas coordenadas en el GoogleEarth.

La aplicación se situa en una tupla de una tabla de una base de datos, saca de unos atributos las coordenadas UTM, las traduce a geográficas y hace una llamada a la ejecución del GoogleEarth posicionando el punto sobre el mapa creándose desde el programa Delphi un fichero kml el cual contiene un montón de información de la base de datos referente al objeto situado en el Google además de la foto, etc.

Ahora deseo hacer el camino inverso, es decir: desde el GoogleEarth y al pulsar sobre la ficha de información de un punto situado en el mapa de GoogleEarth, abrir mi programa exe pasándole como parámetro el identificador del objeto o clave principal de la tupla, que sirva para posicionarme al abrir la aplicación sobre la tupla de la tabla que estaba representada por el objeto sobre el que he pulsado.

En el kml he conseguido invocar a la ejecucuón del programa mediante la llamada:
Código PHP:
<th>
<
a href="C:\GIS\GIS\Gis.exe"Enlace a exe </a>
</
th
Pero no consigo pasarle el parámetro, ya que probando con varias sintaxis del tipo
Código PHP:
<th>
<
a href="C:\GIS\GIS\Gis.exe?var=1-1-2"Enlace a exe </a>
</
th
No consigo ni que el programa se ejecute.

Pregunta:
¿Alguien conoce como invocar a una ejecución de un exe desde html o en este caso kml, pero que se pueda enviar parámetros y recogerlos en sus ParamStr?

Gracias.
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.

Última edición por Cabanyaler fecha: 10-12-2009 a las 18:36:26.
Responder Con Cita
  #2  
Antiguo 10-12-2009
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Poder: 21
Cabanyaler Va por buen camino
Por la calle del medio


Se me ha ocurrido lo siguiente:

En el evento de la aplicación que invoca la creación del fichero kml que me posiciona en el GoogleEarth, crear un fichero bat donde se contenga la línea de código de la llamada al exe con el parámetro como si lo escribiese desde el indicativo de sistema.
Y en el fichero kml en la instrucción a href: incluir la llamada a dicho bat, ya que este no requerirá parámetro por llevarlo ya implicito.

Es una solución a medias, ya que me vale para cuando voy al GoogleEarth desde mi programa y quiero volver al programa pulsandop sobre ese mismo punto en el GoogleEarth, pero no para aquellos puntos sobre los que pinche en el GoogleEarth y a los que no haya llegado desde mi programa, ya que es desde este último desde donde se crea el fichero bat que me arranca la aplicación con el valor del punto a posicionar sobre la tabla de la bbdd grabado o escrito en el bat.

Sigo dandole vueltas a ver como enviar parametro a mi aplicación, mientras igualmente hago la pregunta:

Pregunta:
¿Alguien conoce como invocar a una ejecución de un bat desde html o en este caso kml, pero que se pueda enviar parámetros y recogerlos en sus %1?
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.

Última edición por Cabanyaler fecha: 10-12-2009 a las 18:37:10.
Responder Con Cita
  #3  
Antiguo 11-12-2009
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Poder: 21
Cabanyaler Va por buen camino
Haciendolo de otro modo.

Hola, bueno, he decido hacerlo de otro modo, ya que de este no me permitia lo que he pasado a denominar como bidereccionabilidad, es decir, sin ánimo de liar puedo ir desde el programa al Google Earth y posicionarme en un punto denominado X, y a su vez volver desde el Google Earth al programa siempre q desee volver al mismo punto X desde el cual llamé al Google Earth, pero...... ¿y si navegando deseo volver al programa desde otro punto del google earth que denomino Y??, pues no puedo del modo en el que quería hacerlo mediante la llamada al exe con el parámetro, pq no puedo saber el parametro que debo pasarle al exe a la hora de esa llamada.
No obstante desaría conocer las dudas de los anteriores hilos de como pasar los parametros, no sea que dentro de unos días necesite de ello.
Cuando tenga todo terminado publicaré como lo he hecho todo para los navegantes que puedan llegar a este varadero.
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.
Responder Con Cita
  #4  
Antiguo 16-12-2009
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Poder: 21
Cabanyaler Va por buen camino
Red face Para Navegantes. Como lo he hecho.

Espero que esto sirva a gente interesada en el tema como cualquier post mío.
Aunque sigo interesado en mis dudas de los hilos anteriores.

Bien a grandes rasgos y resumiendo mucho, cuento como lo he solucionado:

Objetivo:
Conseguir tener en una bbdd una tabla puntos de referencia georeferenciados por coordenadas UTM (p.e. cabinas telefónicas, parques infantiles, semáforos, puntos de interés de cualquier tipo...) con información relacional con otras tablas y la funcionalidad que ello ofrece.
Poder ir desde la aplicación que mueve esta bbdd al punto exacto en el GoogleEarth donde se encuentra cada uno de esos puntos para verlo situado.
Y la bidireccionalidad antes mencionada hace referencia a poder ir desde el GoogleEarth mediante click de ratón sobre el punto referenciado automáticamente a la aplicación que mueve la bbdd y situarme sobre la tupla de la tabla que representa ese objeto en el GoogleEarth que contiene dichos puntos de referencia.

Como:
Primero he optado por la generación desde la aplicación de un fichero kml (Punto.kml) con todos los puntos de referencia, traduciendo las coordenadas UTM a las geográficas con las que trabaja el GoogleEarth. Para ello recorro completa la tabla de los puntos de referencia y voy insertando en el kml tantos <Folder> con sus coordenadas como tuplas o puntos tenga en la tabla de la bbdd.
Este kml crea en el GoogleEarth en Lugares Temporales un grupo con todo el contenido de la tabla con sus nombres identificativos.
De este modo desde la aplicación, pongo en el formulario de visualización de estos puntos de referencia un botón que invoca una instrucción que crea y posteriormente ejecuta otro kml (camara.kml) y que se situa a cierta altura sobre el GoogleEath sobre el elemento representado y guardado desde Lugares Temporales a Mis Lugares. Con ello soluciono la ida desde mi aplicación a la visualización del punto en el GoogleEarth.

Para la bidereccionalidad, en el mismo proceso de creación del anterior Punto.kml, creo para cada elemento un fichero bat que contiene una llamada a mi aplicación con el parámetro del identificador del punto sobre el que quiero abrir la aplicación. Existirán por tanto tantos ficheros bat de 1Kb como puntos desee localizar. Del mismo modo y en el mismo proceso también incluyo en el fichero Punto.kml una referencia al bat, que ofrecerá un enlace URL a la ejecución del fichero bat. Con ello soluciono que desde el GoogleEarth y al hacer click sobre el enlace se abra mi aplicación situada sobre la tupla correspondiente el punto

Aquí pongo parte necesaria del código kml :

Camara.kml
Código PHP:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
<name>1-1-2</name>
<Camera id="ID">
<longitude>-0.433410469763336 </longitude>
<latitude>39.6373450821231</latitude>
<altitude>250</altitude>
<altitudeMode>RelativeToGround</altitudeMode>
</Camera>
</Document>
</kml>
Los valores de longitud y latitud, los asigno en el momento pulse el usuario el botón de visualización sobre el GoogleEarth desde la aplicación y situado sobre un punto de interes en su respectivo formulario.
Una vez creado el lo invoco con la instrución:
Código Delphi [-]
ShellExecute(0, 'open', 'C:\Archivos de programa\Google\Google Earth\client\googleearth.exe', 'C:\GIS\BDGIS\Xls\Iconos\Camara.kml', nil, SW_SHOW);

Punto.kml (Sólo un <Folder>) obvio el resto del contenido del kml
Código PHP:
<Folder>
<
name>1-1-1</name>
<
Placemark>
<
name>1-1-1</name>
<
description>
<![
CDATA[<table width="310">
<
th>
<
tr><td>
<
img src C:\GIS\BDGIS\Fotos\1-1-1.jpg width="300" height="400">
</
tr></td>
<
A HREF="C:\GIS\BDGIS\Xls\Bats\1-1-1.bat">Ir a GIS</A>
</
th>
<
tr><td>
<
BR>Callexxxxxx
<BR>Codigo Postalxxxxxxx
   
------- Resto de campos de la tabla a visualizar en la ficha del GoogleEarth
<BR>
<
BR>
]]>
</
description>

<
styleUrl>#1.1.1</styleUrl>
<Point>
<
coordinates>-0.551156959657427,38.8320514219218,0</coordinates>
</
Point>
</
Placemark>
</
Folder
Los valores coordinates, los asigno en el momento he creado el kml.

Y bueno.. os dejo que en dos minutos empieza el Barça en Abu Dhabi.
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.

Última edición por Cabanyaler fecha: 16-12-2009 a las 16:55:02.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Google Earth y Delphi Neeruu Varios 3 01-11-2008 08:02:05
Microsoft Virtual Earth VS Google Earth ?? ZayDun La Taberna 3 11-05-2007 12:34:05
Uso de Google Earth COM API vejerf Varios 1 17-04-2007 23:07:25
Google Earth y la cuarta dimensión dec La Taberna 2 14-11-2006 12:09:12
Integración Google earth Luci Internet 5 21-11-2005 15:14:35


La franja horaria es GMT +2. Ahora son las 10:39:04.


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
Copyright 1996-2007 Club Delphi