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

Ich habe eine ziemlich anspruchsvolle Maps-Anwendung, mit der mehrere benutzerdefinierte Markierungen und so. Ich habe eine Funktion namens resizeWindow, dass ich in einem listener, wenn der Bildschirm geändert wird, wird die Karte zeichnet sich durch die Berechnung der neuen Grenzen und zwingt eine Größe. Es sieht wie folgt aus:

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

ist 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 dies funktioniert hervorragend, wenn ich eigentlich die Größe des Fensters ändern. Aber...

Ich habe ein Menü geht auf der rechten Seite des Fensters. Ich benutze jquery.animieren, sich zu bewegen, das Menü aus dem Bildschirm. Ich nenne die fitmap Funktion als ein-Schritt-Prozess, (oder nur einmal am Ende) und es wird nicht Neuzeichnen der Karte.

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

Ich habe gelesen und Lesen diese, und es scheint, dass es eine Eigenheit von Google Maps API v3.0, Neuzeichnen wird nicht passieren, wenn wirklich nichts verpasst. In diesem Fall, meine verfügbaren Zeitfenster ändert sich von der Bildschirm-Breite - Menü, um die tatsächliche volle Bildschirm. Aber kein redraw passiert.

Ich habe versucht, google.maps.event.trigger(map, 'resize'); und das funktioniert auch nicht.

Gibt es eine Möglichkeit, absolut erzwingen, Google Maps zu zeichnen?

InformationsquelleAutor der Frage Doug Wolfgram | 2013-08-25

Schreibe einen Kommentar