FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Ejecutar Javascript con Delphi para Google Maps
Hola a todos,
Estoy investigando un poco sobre como integrar Google Maps en una aplicación Delphi. He visto varios hilos sobre el tema y me dejan claro como insertar el mapa en mi aplicación. Ahora mi problema es que quiero en tiempo de ejecución insertar placemarks (puntos) en el mapa y no sé como hacerlo. No tengo idea de Javascript, pero reutilizando el código de los ejemplos de Google pensé que sería capaz de apañarme. Ahora mi problema tb es como ejecutar el código de javascript desde mi aplicación Delphi. En otro hilo he visto que se usa execScript, pero cuando yo lo he usado para añadir un placemark me ha dado un error de que no se encuentra la variable map que es cargada en el script de iniciación. Os dejo el código a ver si alguien sabe como insertar un placemark ejecutando código javascript. Mi formulario consta de un TWebBrowser y de un botón. Quiero que cuando se pulse el botón se ejecute el código de un script que tengo en un fichero.
El código del script que quiero que se ejecute cuando se pulse el botón es el siguiente tomado de un ejemplo de Google que crea 10 placemarkts var bounds = map.getBounds(); var southWest = bounds.getSouthWest(); var northEast = bounds.getNorthEast(); var lngSpan = northEast.lng() - southWest.lng(); var latSpan = northEast.lat() - southWest.lat(); for (var i = 0; i < 10; i++) { var point = new GLatLng(southWest.lat() + latSpan * Math.random(), southWest.lng() + lngSpan * Math.random()); map.addOverlay(new GMarker(point)); La página de inicio que carga el navegador es: <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>Control Initialization</title> <script src="http://maps.google.com/maps?file=api&"type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ function initialize() { if (GBrowserIsCompatible()) { // define the crosshair tile layer and its required functions var crossLayer = new GTileLayer(new GCopyrightCollection(""), 0, 15); crossLayer.getTileUrl = function(tile, zoom) { return "./include/tile_crosshairs.png"; } crossLayer.isPng = function() {return true;} // Create a new map type incorporating the tile layer var layerTerCross = [ G_PHYSICAL_MAP.getTileLayers()[0], crossLayer ]; var mtTerCross = new GMapType(layerTerCross, G_PHYSICAL_MAP.getProjection(), "Ter+"); var map = new GMap2(document.getElementById("map_canvas"), { size: new GSize(1080,930) } ); map.addMapType(G_PHYSICAL_MAP); map.addMapType(mtTerCross); map.addMapType(G_SATELLITE_3D_MAP); map.setCenter(new GLatLng(40,-3.5), 7); // posicion inicial map.addControl(new GLargeMapControl()) var mapControl = new GHierarchicalMapTypeControl(); // Set up map type menu relationships mapControl.clearRelationships(); mapControl.addRelationship(G_SATELLITE_MAP, G_HYBRID_MAP, "Labels", false); mapControl.addRelationship(G_PHYSICAL_MAP, mtTerCross, "Crosshairs"); // Add control after you've specified the relationships map.addControl(mapControl); } } //]]> </script> </head> <body onload="initialize()" onunload="GUnload()"> <div id="map_canvas" style="float:left; width: 100%; height: 100%"></div> </body> </html> Gracias de antemano!!!
__________________
"Patientia et constantia taelecum" |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Interactuar entre Google maps y Delphi | madiazg | Varios | 2 | 09-11-2008 04:16:45 |
Google Maps | madiazg | Varios | 4 | 26-10-2008 22:03:41 |
google maps | MOCOSO07 | Varios | 2 | 06-08-2008 18:08:22 |
Google maps y php | halizia | PHP | 2 | 16-03-2007 17:04:49 |
Google Maps .es | Neftali [Germán.Estévez] | Noticias | 0 | 27-04-2006 13:32:54 |
|