Seleccionar página

Como siempre que se desarrolla una aplicación, aparecen errores que nos dan multitud de quebraderos de cabeza.
Ahí van unos cuantos con los que me he enfrentado trabajando con Google Maps.

  • El fondo del mapa se ve totalmente en gris
    Casi seguro es porque alguna propiedad css está interfiriendo con el mapa. Un caso en el que aparece es con la propiedada overflow:hidden.
  • El fondo del mapa se ve parcialmente gris, y el centro se sitúa en la esquina superior izquierda
    Esto ocurre porque cuando la api de google maps carga el mapa, el div contenedor que ha sido pasado como argumento al constructor GMap2 tiene tamaño cero. El trozo de mapa que se ve es realmente el trozos que queda fuera de los limites de visión pero es cargado para mejorar el rendimiento al desplazar el mapa.
    Que el div contendor tenga tamaño cero, suele ocurrir cuando está dentro de una tabla o tiene el tamaño especificado con porcentajes. Hasta que el DOM no se carga completamente, el div no adquiere un tamaño definido, y en el momento en el que se carga el mapa aun no tiene su tamaño final.
    Se puede solucionar especificando el ancho (width) y alto (height) del contendor sin porcentajes o especificando directamente el tamaño del mapa con un argumento en el constructor GMap2:

    new GMap2(container, {size:new GSize(width,  height)})
  • Object cannot be created in this context” code: “9” … (NS_ERROR_DOM_NOT_SUPPORTED_ERR)
    Este error suele aparecer en firefox cuando el mapa se inserta en una pagina JSF con Facelets.Es debido a que el objeto ‘document’ de javascript creado por firefox cuando el mime type es ‘application/xhtml+xml’, no tiene el metodo write().
    Para solucionarlo tienes que establecer el content type de la pagina como text/html. Con JSF se puede hacer añadiendo el tag

    		<f contenttype="text/html" />

    en la página que contenga el mapa (No afecta a facelets ni al funcionamiento de la pagina).