¿Cómo fuerzo el redibujado con la API de Google Maps v3.0?

Tengo una aplicación de mapas bastante sofisticada que maneja múltiples marcadores personalizados y demás. Tengo una función llamada resizeWindow a la que invoco a un oyente para que cuando se cambie la pantalla, el mapa se vuelva a dibujar calculando nuevos límites y forzando un cambio de tamaño. Se parece a esto:

window.onresize = function(event) { fitmap(); };

y la función de redimensionar es:

function fitmap(id) {
    var coords = [];
    var newlatlng = new google.maps.LatLng(projlat, projlng);
    coords.push(newlatlng);

        for (var i=0; i<markers[id].length; i++) {
            newlatlng = new google.maps.LatLng(markers[id][i].latitude, markers[id][i].longitude);
            coords.push(newlatlng);
        }
    }   

    var bounds = new google.maps.LatLngBounds ();
    for (var i = 0, LtLgLen = coords.length; i < LtLgLen; i++) {
        bounds.extend (coords[i]);
    }
    map.fitBounds(bounds);

y esto funciona muy bien cuando realmente redimensiono la ventana. Pero...

Tengo un menú que va por el lado derecho de la ventana. Uso jquery.animate para mover ese menú de la pantalla. Llamo a la función fitmap como un proceso de paso (o solo una vez al final) y no volverá a dibujar el mapa.

$('#rightSide').animate({ right:"-240px" }, { 
    duration:1000, 
    step: function(now,fx) {
        fitmap();
    } 
});

He leído y leído sobre esto y parece que hay una rareza de Google Maps API v3.0 que no volverá a dibujarse si nada cambia realmente. En este caso, mi ventana disponible cambia de ancho de pantalla - menú a pantalla completa real. Pero no hay redibujado.

He intentado google.maps.event.trigger (map, 'resize'); y eso tampoco funciona.

¿Hay una manera de obligar absolutamente a Google Maps a volver a dibujar?

Respuestas a la pregunta(1)

Su respuesta a la pregunta