Событие называется zoom_changed
(НЕ zoom_change
). Обработчик этого события называется ПОСЛЕ изменения масштабирования. На самом деле не так просто отличить изменение масштаба, вызванное пользователем, от изменения, вызванного программой. Возможное решение - сохранить «глобальную» переменную, скажем, userZoom
, которая обозначает, активировал ли пользователь масштабирование.
var userZoom = true; // initial value: be prepared for user action
// Install listener
google.maps.event.addListener(Map.self, 'zoom_changed', function() {
if (userZoom) {
// the user changed zoom: do what should be done
}
else {
// zoom change caused by a program action: ignore
}
userZoom = true; // be prepared for the user zoom action
});
Прежде чем вызывать какие-либо действия программы, которые изменяют масштаб, установите userZoom = false
, например,
userZoom = false;
map.setZoom(9);