|
|
Moderador del foro: ZorG |
Foro uCoz Ayuda a los webmasters Configuración del diseño Ventanas de información con pestañas en Google Maps |
Ventanas de información con pestañas en Google Maps |
VENTANAS DE INFORMACIÓN CON PESTAÑAS EN GOOGLE MAPS Cómo crear un sistema de pestañas o tabs en ventanas de información generadas en los mapas de Google, para mostrar varios contenidos en una misma caja. Vamos a ver cómo crear cajas con información de las típicas de Google Maps, pero que además incluyan una interfaz de "tabs", mediante las cuales podremos ver varios contenidos en una misma caja, pero clasificados en distintas pestañas. Veremos las clases de Programación Orientada a Objetos que dispone el API de los Mapas de Google para generar estas pestañas y aprenderemos a utilizarlas. En el API de Google Maps existen clases para hacer muchas cosas y una de ellas es la creación de ventanas de información, que ya hemos visto por ejemplo en el artículo Mostrar marcas y ventanas de información y los siguientes. Ahora veremos como hacer que esas ventanas de información contengan contenidos organizados en pestañas. En este artículo vamos a colocar varias marcas y haciendo clic se verán las ventanas de información con las pestañas. Para hacerse una idea exacta, podemos ver el ejemplo que vamos a explicar en una ventana aparte. Crear una marca
Quote //Creo un punto para localizar la marca var puntoMarca1 = new GLatLng(40.41689826118782,-3.7034815549850464); //creo la marca sobre el punto generado antes var marca1 = new GMarker(puntoMarca1); //coloco la marca en el mapa map.addOverlay(marca1); Evento a la marca para actuar cuando se hace clic sobre ella
Quote GEvent.addListener(marca1, "click", function (){ //Aquí el código para crear la ventana con pestañas. }); Con el código anterior se añade un evento "click" sobre la marca "marca1" que habíamos creado antes. Crear una ventana con pestañas Así pues, crearemos primero las distintas pestañas y luego haremos la caja de información, pasando como parámetro esas pestañas creadas. Para hacer las pestañas tengo que instanciar objetos de la clase GinfoWindowTab, cuyo constructor recibe dos parámetros. El primero un string con el nombre de la pestaña y el segundo un string con el código HTML que tiene que mostrarse cuando se active esa pestaña.
Quote //creo las pestañas var pestana1 = new GInfoWindowTab("Etiqueta1","<div style='width: 300px;'>Este es el texto de la etiqueta 1</div>"); var pestana2 = new GInfoWindowTab("Etiq","<div style='width: 300px;'>Ahora estoy en la 2"); var pestana3 = new GInfoWindowTab("Otra","<div style='width: 300px;'><b>Tercera pestaña:</b><br>Colocaré otros contenidos para ver lo que pasa."); //creo y muestro la ventana con pestañas sobre la marca En el código anterior vemos como se instancian diferentes pestañas y luego como se envían esas pestañas creadas, en un array, como parámetro del método openInfoWindowTabsHtml(), que será el encargado de crear toda la estructura de las pestañas. Es importante señalar que podemos colocar tantas pestañas como deseemos en una ventana de información, pero si colocamos más de 2, el tamaño por defecto de las ventanas de información no será suficiente para que quepan todas las pestañas y se descuadrará el diseño. La solución es tan simple como colocar un ancho en los contenidos de la ventana de información, para que se haga lo suficientemente grande como para que quepan las pestañas. Función para crear una marca con ventana de información con pestañas
Quote function crearMarcaPestanas(punto, arrayEtiquetas, arrayContenidos) { var marca = new GMarker(punto); var arrayPestanas = new Array(); var anchuraPestanas = arrayEtiquetas.length * 90; for (i=0; i < arrayEtiquetas.length; i++){ arrayPestanas[i] = new GInfoWindowTab(arrayEtiquetas[i], "<div style='width: " + anchuraPestanas + "px;'>" + arrayContenidos[i] + "</div>"); } GEvent.addListener(marca, "click", function() { marca.openInfoWindowTabsHtml(arrayPestanas); }); return marca; } En esta función primero creamos la marca. Luego creamos un array donde guardaremos las distintas pestañas. Para generar las pestañas hacemos un bucle for para recorrer los arrays recibidos por parámetro arrayEtiquetas y arrayContenidos e ir generando con sus datos las pestañas como objetos de la clase GInfoWindowTab. Por último se añade un evento clic a la marca, en el que se genera y muestra la ventana de info con las pestañas, a partir del mencionado método openInfoWindowTabsHtml() de las marcas, pasándole el array de pestañas generadas antes. Esta función se encarga de todo menos de colocar la marca sobre el mapa. En realidad sólo la genera y añade el evento clic, para mostrar una caja de información con pestañas, con los contenidos pasados por parámetro. Una vez creada la marca la devuelve (como return de la función), de modo que la tendríamos que añadir con el método addOverlay() del mapa. Por ejemplo, podríamos utilizar un código como este para crear la marca y colocarla en el mapa de Google:
Quote map.addOverlay(crearMarcaPestanas(new GLatLng(45.822,0.850464), ["Uno", "Dos", "Tres", "Cuatro"], ["Datos de 1", "Datos de 2", "Datos de 3", "Datos de 4"])); Todo el código junto de las marcas y ventanas con pestañas
Quote function load() { if (GBrowserIsCompatible()) { var map = new GMap2(document.getElementById("map")); //Creo y muestro una marca }); function crearMarcaPestanas(punto,arrayEtiquetas, arrayContenidos) { map.addOverlay(crearMarcaPestanas(new GLatLng(39.416898,-9.034814), ["GEOGRAF.", "HISTORIA"], ["Datos de Geografía de este elemento.", "Datos de la historia sobre esta marca"])); } Por último, dejamos un enlace para ver el ejemplo en una ventana aparte.
(tomado de http://www.desarrolloweb.com )
Las vírgenes tienen muchas navidades pero ninguna Nochebuena.
|
| |||
| |||