我知道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
在我的应用程序中,这是一个不需要的功能,因为用户需要能够尽可能快地进行缩放。是否有办法克服这种限制,例如通过构建自定义交互或以某种方式更改我的地图配置?
当前,最大增量只能在创建自定义版本时通过编译器定义进行配置。
为此,您将在构建配置中需要这样的东西(这里:最大增量为10):
“define”: [
“ol.MOUSEWHEELZOOM_MAXDELTA=10”
]
如果您需要有关构建配置和构建任务的更多常规信息,请参见https://github.com/openlayers/ol3/blob/master/tasks/readme.md。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句