Openlayers 3关闭平滑滚动

时间:2015-04-17 09:46:58

标签: scroll openlayers-3 inertia

我目前有一个Openlayers 3集成了许多更新功能,这些使得滚动口吃,特别是当使用'动态'运动(轻弹滚动)时。有没有办法在惯性关闭时转动平滑滚动,以便用户必须拖动才能移动地图?

在缩放时删除动画也会有所帮助。

我一直在寻找ol.animation区域 - 这是正确的地方吗?

2 个答案:

答案 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)})]),
      //...
    });
}