2012-03-28 13 views
2

Ich versuche, ein Bild-Overlay auf einer Google-Karte im laufenden Betrieb zu aktualisieren. Ich kann ein neues Overlay-Objekt erstellen, aber ich kann nicht herausfinden, wie es geändert wird. Kann ich die overlayImage ObjektGoogle Maps: Bild-Overlay aktualisieren

var overlayImage = new google.maps.GroundOverlay("myimage.png", imageBounds); 

aktualisieren möchte ich overlayImage auf Zoom ändern ändern, aber ich kann es nicht durch die Funktion übergeben. Ich kann es auch nicht im 'map'-Objekt finden.

google.maps.event.addListener(map, 'zoom_changed', function(overlayImage) { 

} 

Wie aktualisiere ich myimage.png, wenn die Zoomstufe geändert wird?

Antwort

3

Ich denke, das Problem ist, dass das OverlayImage außerhalb des Geltungsbereichs ist, wenn Sie den Ereignislistener hinzufügen.

Versuchen Sie als Test, die Variable global zu deklarieren, und weisen Sie die Variable später zu.

In JavaScript können Sie nicht einfach eine Variable in einer Funktion übergeben und hoffen, dass sie etwas aufgreift, das Sie zuvor deklariert haben. Die andere Sache, die passieren kann, ist, dass der Ereignis-Listener das Ereignisobjekt als ersten Parameter in der Callback-Funktion übergibt, aber Sie haben es als overlayImage bezeichnet. Innerhalb dieses Callbacks ist der Kontext von overlayImage also das Ereignisobjekt. Sie würden etwas wie tun:

google.maps.event.addListener(map, 'zoom_changed', function(event) { 
    /* overlayImage can now be used */ 
    overlayImage.someAPIFunction(); 
} 
+0

Ehrfürchtig, danke !! :) –

+0

Das Hinzufügen des Ereignisobjekts hat funktioniert. –