Info Window en GMaps API v3 Info Window en GMaps API v3

Posted by on Sep 2, 2010 in Código, Featured Articles | 12 comments


A partir de este post, me enfocaré en el tema, si nunca has hecho nada con GMaps, te sugiero leas las bases del manejo de la API de GMaps v3.

¿Qué es un Info Window?

funny road signQuizá han visto que en muchos de los mapas de mostrados con la tecnología de Google, al dar clicks sobre los marcadores, mapa, formas, etc., nos aparece un cuadro con información, bien, pues eso es un Info Window.

Las opciones que usaremos para la creación del objeto de InfoWindow contendrá los siguientes campos:

  • content contiene una cadena de texto o nodo DOM que mostrará al abrir la ventana de información.
  • position contiene el LatLng al cuál estará asignado, ten en cuenta que si es asignada a un marcador, automáticamente adquiere el valor de su posición, en caso de no asignarle algún LatLng toma el centro que se muestra por primera vez del mapa, para los polígonos trabaja de manera diferente y lo hablaremos en otro post.
  • maxWidth especifica el ancho máximo en pixeles, que podrá adquirir la ventana, por default adquiere el ancho del contenido, sin saturar el espacio del mapa, haciendo saltos de línea en automático, cuando el contenido ha alcanzado el máximo permitido, se expandirá verticalmente igual, sin saturar el espacio del mapa. En caso de que se establezca un determinado ancho, el texto en automático dará saltos de línea al llegar al límite establecido, si el contenido es mucho se extenderá verticalmente sin saturar el espacio.

El contenido del InfoWindow puede contener una cadena de texto, un fragmento de código HTML, o un mismo elemento DOM. Para establecer este contenido, debe hacerse una llamada explícita al constructor del InfoWindow con setContent(). Ten cuidado al usar div’s ya que si le pones estilos y sobrepasa el espacio puede “derramarse” el contenido fuera del InfoWindow.

Ahora si vamos directo al código, este ya solamente es el JavaScript, recuerda agregar jQuery también:

var myLatlng = new google.maps.LatLng(20.68017,-101.35437);
var myOptions = {
  zoom: 13,
  center: myLatlng,
  mapTypeId: google.maps.MapTypeId.ROADMAP
}

var map = new google.maps.Map($("#map_canvas").get(0), myOptions);

var contentString = '<div id="div_ejemplo">'+
    '<p>Este es un ejemplo de <b>InfoWindow</b>, ' +
    'como puedes ver puedes agregar cualquier cosa, ' +
    'cualquier <em>HTML</em>.</p>' +
    '<p>Este InfoWindow tiene un ancho de 200px ' +
    'y autom&aacute;ticamente da los saltos de l&iacute;nea.</p>'+
    '<p>Para ver el tutorial <a href="http://jafrancov.com/2010/09/info-window-gmaps-api-v3/">'+
    'clickea aqu&iacute;</a>.</p>'+
    '</div>';

var infowindow = new google.maps.InfoWindow({
    content: contentString,
    maxWidth: 200
});

var marker = new google.maps.Marker({
    position: myLatlng,
    map: map,
    title:"Ejemplo InfoWindow"
});

google.maps.event.addListener(marker, 'click', function() {
  infowindow.open(map,marker);
});

Solamente un último detalle antes de terminar, podrán observar que al final vemos un addListener, para que se pueda mostrar el InfoWindow al hacer click, es necesario agregar un Listener, que valga la redundancia, está a la escucha de un click, analicémoslo:

google.maps.event.addListener(marker, 'click', function() {
  infowindow.open(map,marker);
});

Vamos por partes google.maps.event.addListener, es una función integrada de la API que agregará el listener, requiere de 3 cosas, a quién se le va a asignar el listener, en este caso a marker que es la variable que almacena el objeto del marcador que se dibuja, el tipo de listener que para este caso es un ‘click’ y por último el proceso que realizará, que para el ejemplo es una función. Dentro de la función especificamos lo que hará el listener, haremos uso de infowindow que es la variable que contiene el objeto con los detalles del InfoWindow por supuesto, a la cual se le llama la función open() que es la que se encargará de mostrar el InfoWindow, y esta funcióna a su vez, requiere de 2 parámetros, el primero en qué objeto de mapa se va a agregar (map) y segundo, a qué objeto se le va a asignar (marker), en caso de que no se especifique la segunda variable, se mostrará en el centro inicial del mapa.

Ver Demo de InfoWindow GMaps API v3

Ahora si es todo por este tutorial, espero les sirva, si tienen dudas ya saben dónde y cómo preguntar :D

Enjoy this Life!!

Quizá también te interese...


12 Responses to “Info Window en GMaps API v3”

  1. algo esta mal cuando es mas de 1 marker.

  2. marisela says:

    Hola

    Estoy aprendiendo de este tema y tengo una duda ¿que debo hacer para que en la ventana informativa me aparezca el menu que sale normalmente en los mapas de google, es decir las opciones “como llegar” “buscar alrededores”

    Gracias de antemano

    • @marisela pues, esos menús o links son algo que tienes que programar, no son como llamar una función de GMaps y listo, hay que entrarle a la API y desarrollarlo, en unos días publicaré el cómo trazar rutas, pero pues es una pequeña cosa de todo lo que puedes hacer.

      • marisela says:

        Pero no existe la opción de llamar a esas funcionalidad de google maps con alguna api u otra ya que he visto sitios en tienen un mapa con marcas y les aparece la dirección y este menu, perdona mi ignorancia

  3. MyMele says:

    Buenas quisiera saber que libreria debo agregar para poder utilizar Gmaps.
    Gracias.

  4. Miguel says:

    Hola, tengo un problema y quiero ver si me puedes ayudar, estaba utilizando la V2 de Gmaps para mostrar unos marcadores y sus respectivos infowindows lo quiero hacer pero para la V3 pero tengo algunos problemas.

    Mi codigo que funcionaba en la V2 es el siguiente:
    admin.pumasa.com.mx/descargas/script_gmaps_v2.txt

    Lo que mostraba era algo asi:
    http://admin.pumasa.com.mx/descargas/muestra_gmapsv2.jpg

    Lo que llevo hasta el momento es:
    admin.pumasa.com.mx/descargas/script_gmaps_v2.txt

    Nota: En la V2 ocupaba la longitud y la latitud de cada marcador, para el V3 uso el Geocode que saque de tu otro articulo.

    Saludos y Gracias de Antemano

  5. A alguien le ha dado problemas con Internet Explorer. Funciona correctamente en Chrome y firefox pero no se ve el mapa en IE9-

Trackbacks/Pingbacks

  1. Marcador arrastrable y cómo obtener su Lat/Lng GMaps API v3 | Alex Franco - [...] Posted by jafrancov on Sep 7, 2010 in Código, Featured Articles | 0 comments ...

Leave a Reply