Wie erzwinge ich das erneute Zeichnen mit Google Maps API v3.0?

Ich habe eine ziemlich ausgefeilte Maps-Anwendung, die mehrere benutzerdefinierte Markierungen und so weiter verarbeitet. Ich habe eine Funktion namens resizeWindow, die ich in einem Listener aufrufe, damit sich die Karte bei jeder Änderung des Bildschirms neu zeichnet, indem neue Grenzen berechnet und eine Größenänderung erzwungen wird. Es sieht aus wie das:

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

und die Funktion zum Ändern der Größe ist:

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);

und das funktioniert hervorragend, wenn ich die Fenstergröße tatsächlich verändere. Aber...

Ich habe ein Menü auf der rechten Seite des Fensters. Ich benutze jquery.animate, um dieses Menü vom Bildschirm zu entfernen. Ich rufe die Fitmap-Funktion als einen Schrittprozess (oder nur einmal am Ende) auf und sie wird die Karte nicht neu zeichnen.

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

Ich habe dies gelesen und gelesen und es scheint, dass es eine Seltsamkeit von Google Maps API v3.0 gibt, dass ein Neuzeichnen nicht stattfinden wird, wenn sich tatsächlich nichts ändert. In diesem Fall wechselt mein verfügbares Fenster vom Bildschirmbreitenmenü zum tatsächlichen Vollbild. Es findet jedoch kein Neuzeichnen statt.

Ich habe versucht, google.maps.event.trigger (Karte, "Größe ändern"); und das geht auch nicht.

Gibt es eine Möglichkeit, Google Maps zum Neuzeichnen zu zwingen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage