2013-02-04 13 views
6

Moje pytanie jest całkiem proste.Sprawdź, czy element Canvas GoogleMap jest już bezczynny.

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

Ten fragment kodu spowoduje po mapa jest obecnie zajęty powiększanie lub panoramowanie. Nie wtedy, gdy jest już bezczynny.

Czy istnieje sposób sprawdzenia stanu płótna w instrukcji if? Więc kiedy jest już bezczynny, wykonasz // code bez dodawania detektora?

Odpowiedz

4

Brak udokumentowanej właściwości, która sygnalizuje stan bezczynności mapy, ale można ją wdrożyć na własną rękę.

Zakładając, że nazywają to zaraz po inicjalizacji mapie:

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

Następnie można sprawdzić, czy lastBounds-nieruchomość jest równa obecnych granicach mapie:

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

Nie zapomnij dodać wartość początkową, taką jak 'this.lastBounds = 0;'. Inaczej będzie myśleć, że jest bezczynny przed załadowaniem, ponieważ oba 'this.lastBounds' i' this.getBounds() 'będą niezdefiniowane. – Sem

Powiązane problemy