2016-05-24 2 views
0

Я построил карту OpenLayers 3. Мне это нравится, но я чувствую, что масштабирование происходит слишком быстро. Я не могу найти способ замедлить его. Помогла бы более длинная продолжительность анимации и/или подход с дробным увеличением (масштабирование менее чем на 1 для каждого события). Как я могу реализовать эти изменения?Как я могу замедлить все масштабирование в OpenLayers 3?

ответ

1

Вы можете настроить duration собственность на ol.control.Zoom, ol.interaction.MouseWheelZoom, ol.interaction.DoubleClickZoom и ol.interaction.KeyboardZoom:

var duration = 1000; // 1 second 
map.addControl(new ol.control.Zoom({ 
    duration: duration 
})); 
map.addInteraction(new ol.interaction.MouseWheelZoom({ 
    duration: duration 
})); 
map.addInteraction(new ol.interaction.DoubleClickZoom({ 
    duration: duration 
})); 
map.addInteraction(new ol.interaction.KeyboardZoom({ 
    duration: duration 
})); 
+0

Спасибо! Это хорошо работает, если вы масштабируете один уровень за раз, но он становится очень изменчивым, если вы быстро увеличите масштаб на нескольких уровнях. – sbleon

+2

Вы также можете настроить свой 'ol.View' с помощью другого' zoomFactor'. Значение по умолчанию равно 2. Коэффициент 1,5 дает вам в два раза больше шагов масштабирования, что приводит к более медленному масштабированию. – ahocevar

+0

@sbleon Вы попробовали решение '@ ahocevar'? –

Смежные вопросы