post icon

Corregir bug de gmaps al estar en contenedores ocultos

Cuando se trabaja con la API de Google Maps, sin importar que lenguaje o componentes estén usando y el mapa se encuentra dentro de un contenedor oculto (atributo hide) al intentar mostrar verán que dicho mapa se comporta de manera extraña, a veces no cargará completamente o carga sólo parte del mapa y el resto se verá en color gris. Pueden ver como un ejemplo del bug en la siguiente imagen.

Esto sucede por un cambio de tamaño mientras se renderiza y fácilmente se corrige según la documentación oficial de la API con ejecutar un método javascript:

checkResize();

Esto debemos llamarlo en algún evento, en mi caso lo invocaba en un botón que ejecutaba un función asi:

gmapDevtroce.checkResize();

Para la gente que utiliza subgurim para .Net pueden agregar el siguiente código que se encargará de agregarle listeners de resize:

string s ="if (window.attachEvent) {" +"window.attachEvent(\"onresize\", function() {" + GMap1.GMap_Id + ".checkResize();" + GMap1.GMap_Id + ".setCenter(new GLatLng(" + latitude + ", " + longitude + "),13)" + "} );" + "} else {" +"window.addEventListener(\"resize\", function() {" + GMap1.GMap_Id + ".checkResize();" + GMap1.GMap_Id + ".setCenter(new GLatLng(" + latitude + ", " + longitude + "),13)" + "} , false);" + "}";
GMap1.addCustomInsideJavascript(s);
1 junio 2011

Comentarios desde Facebook:

Sin Comentarios aun, puedes tú ser el primero en comentar!

Deja tu Comentario

Responder