Złap zdarzenie bounds_changed, gdy użytkownik przesunie mapę, ale nie użyje metody setCenter
Chcę posłuchać zdarzenia „bounds_changed”, gdy użytkownik przesunie mapę, zmieni powiększenie, ale nie chcę, aby było uruchamiane, gdy mój program wywołuje metody setCenter lub setZoom. Próbowałem więc usunąć zdarzenie przed ustawieniem centrum i dodaniem go po raz kolejny. Jednak to nie zadziałało, Moje wydarzenie jest nadal uruchamiane.
var currentBoundsListener = null;
function addBoundsChangedListener() {
currentBoundsListener = google.maps.event.addListener(map, 'bounds_changed', function () {
// Whatever.
});
}
function setCenter(lat, lng) {
google.maps.event.removeListener(currentBoundsListener);
var geo = new google.maps.LatLng(lat, lng);
map.setCenter(geo);
addBoundsChangedListener();
}
Myślę, że mapa tworzy zdarzenie bounds_changed po dodaniu do niego nowego odbiornika, tak jak zdarzenie jest asynchronizowane.