Я не большой разработчик карт Google, но вы можете попытаться выполнить обновление только после того, как событие Idle сработало.
Вы фиксируете тот факт, что zoom_changed, bounds_changed или tile_loaded, а затем ждете, пока простое действительно сделает обновление. Ниже приведен код, который я использую для обновления маркеров на странице.
var boundsChanged = false;
function setupBoundsListener(map) {
google.maps.event.addListener(map, "bounds_changed", function() {
boundsChanged = true;
});
}
function setupIdleListener(map) {
google.maps.event.addListener(map, "idle", function() {
if ( boundsChanged ) {
clearMarkers( map );
populateMarkers( map );
resetBoundsChanged();
}
});
}