2013-02-04 19 views
6

Meine Frage ist ziemlich direkt.Überprüfen Sie, ob ein GoogleMap-Canvas-Element bereits inaktiv ist

google.maps.event.addListenerOnce(map, 'idle', function() { 
    // code 
}); 

Dieser Code-Snippet wird ausgelöst, nachdem die Karte zur Zeit beschäftigt Zoomen oder Schwenken ist. Nicht wenn es schon inaktiv ist.

Gibt es eine Möglichkeit, den Status der Zeichenfläche in einer if-Anweisung zu überprüfen? Wenn es also bereits inaktiv ist, machst du die // code ohne einen Listener hinzuzufügen?

Antwort

4

Es gibt keine dokumentierte Eigenschaft, die den Leerlaufstatus der Karte signalisiert, Sie können sie jedoch selbst implementieren.

Vorausgesetzt, dass Sie diese direkt nach der Initialisierung der Karte nennen:

google.maps.event.addListener (map, 'idle', function(){ 
      this.lastBounds=this.getBounds(); 
}); 

Dann überprüfen Sie, wenn die lastBounds-Eigenschaft auf die aktuellen Grenzen der Karte gleich ist:

if (map.lastBounds==map.getBounds()){ 
    //call function immediately 
}else{ 
    //add listener 
} 
+0

Do not Vergiss, einen Startwert wie 'this.lastBounds = 0;' hinzuzufügen. Sonst wird es denken, dass es vor dem Laden leer ist, da sowohl 'this.lastBounds' als auch' this.getBounds() 'nicht definiert sind. – Sem

Verwandte Themen