我目前有一个Openlayers 3集成了许多更新功能,这些使得滚动口吃,特别是当使用'动态'运动(轻弹滚动)时。有没有办法在惯性关闭时转动平滑滚动,以便用户必须拖动才能移动地图?
在缩放时删除动画也会有所帮助。
我一直在寻找ol.animation区域 - 这是正确的地方吗?
答案 0 :(得分:3)
可以在ol.interaction.DragPan
相互作用中关闭动力学。通过将duration: 0
传递给ol.interaction.MouseWheelZoom
在此处查看实时示例:http://jsfiddle.net/9v6fd6as/1/
以下是示例源代码:
var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
interactions: ol.interaction.defaults({
dragPan: false,
mouseWheelZoom: false
}).extend([
new ol.interaction.DragPan({kinetic: false}),
new ol.interaction.MouseWheelZoom({duration: 0})
]),
target: 'map',
view: new ol.View({
center: [0, 0],
zoom: 2
})
});
答案 1 :(得分:0)
Alexandre Dube的以上回答对于Openstrongs的旧版本是正确的。
如果您将 OpenLayers 6+与TypeScript一起使用,则可以通过以下方式禁用动画平移:
import Interaction from "ol/interaction/Interaction";
import DragPan from "ol/interaction/DragPan";
import {defaults as defaultInteractions} from 'ol/interaction.js';
import {Kinetic} from "ol";
// ...
ngOnInit() {
this.map = new Map({
//...
interactions: defaultInteractions({
dragPan: false
}).extend([new DragPan({kinetic: new Kinetic(0, 0, 0)})]),
//...
});
}