2011-06-10 11 views
11

¿Cómo puedo establecer una función de devolución de llamada en una sola llamada especificada panTo? Aquí está mi código.Google Maps v3 panTo Callback?

var loc = data.split(','); 
map.panTo(new google.maps.LatLng(loc[0], loc[1]), function(){ 
    console.log('this never logs...'); 
}); 

Respuesta

18

No estoy seguro de lo que está tratando de lograr. ¿Esperas que la devolución de llamada se ejecute cuando finalice la panoramización? Si es así, puede intentar esto:

map.panTo(new google.maps.LatLng(loc[0], loc[1])); 
google.maps.event.addListenerOnce(map, 'idle', function(){ 
    console.log('this logs after the panTo finishes.'); 
}); 
+7

Bueno, supongo que la utilización de eventos inactivos es la mejor manera de simular dicha devolución de llamada. Su solución funciona bien con solo una excepción: el evento inactivo no se activa si no se cambia la posición del centro del mapa. Luego, el oyente permanece en la aplicación hasta que el evento inactivo se desencadena (después de hacer un zoom u otra panorámica). Al final, puede suceder que varios oyentes estén esperando el evento inactivo. Por lo tanto, es necesario verificar que el centro del mapa realmente se está cambiando. – Tomik