OpenLayers 3中的鼠标滚轮限制

时间:2015-03-05 21:26:04

标签: openlayers-3

我知道OpenLayers 3 ol.interaction.MouseWheelZoom会在实际触发事件之前累积鼠标滚轮事件一段时间,这是一种想要的行为。然而,似乎它将最大缩放步长限制在恒定范围内。这可以在以下函数中看到:

/**
* @private
* @param {ol.Map} map Map.
*/
ol.interaction.MouseWheelZoom.prototype.doZoom_ = function(map) {
    var maxDelta = ol.MOUSEWHEELZOOM_MAXDELTA;
    var delta = goog.math.clamp(this.delta_, -maxDelta, maxDelta);

    var view = map.getView();

    goog.asserts.assert(!goog.isNull(view));
    map.render();

    ol.interaction.Interaction.zoomByDelta(map, view, -delta,
        this.lastAnchor_,
        this.duration_);

    this.delta_ = 0;
    this.lastAnchor_ = null;
    this.startTime_ = undefined;
    this.timeoutId_ = undefined;
};

取自 https://github.com/openlayers/ol3/blob/master/src/ol/interaction/mousewheelzoominteraction.js

在我的应用程序中,这是一项不需要的功能,因为用户需要能够尽可能快地进行缩放。有没有办法克服这个限制,例如通过构建自定义交互或以某种方式更改我的地图配置?

1 个答案:

答案 0 :(得分:2)

目前,最大增量只能在创建自定义构建时通过编译器定义进行配置。

要实现这一点,您需要在构建配置中使用类似的内容(此处:最大增量为10):

“define”: [
  “ol.MOUSEWHEELZOOM_MAXDELTA=10”
]

如果您需要有关构建配置和构建任务的更多常规信息,请参阅https://github.com/openlayers/ol3/blob/master/tasks/readme.md