繁体   English   中英

在 OpenLayers 中捕获鼠标滚轮缩放

[英]Capturing mousewheel zoom in OpenLayers

我在 OpenLayers 中有一张地图,其中有许多带有标记的图层。 每次用户缩放地图时,我都会调用一个对重叠标记进行分组的函数。 这在使用普通缩放按钮缩放时效果很好,但我也想在用户使用鼠标滚轮缩放时调用此函数。

我想我必须使用OpenLayers.Handler.MouseWheel来捕获这个事件,但我不知道如何。 有没有人有这方面的例子?

您应该使用地图的zoomend事件,无论用户如何操作(按钮、双击或鼠标滚动),每次用户放大或缩小时都会触发zoomend事件。

代码应如下所示:

map.events.on({ "zoomend": function(){
    //Do whatever you need to do here
}});

使用最新版本的 Openlayers v6.5.0。 我成功了

this.map = new Map({
            controls: [],
            interactions: defaultInteractions({
                shiftDragZoom: false,
                doubleClickZoom: false,
                pinchRotate: false,
                mouseWheelZoom: false,
            }).extend([
                new MouseWheelZoom({
                    condition: platformModifierKeyOnly,
                    handleEvent: (event) => {
                        if (event.type !== "wheel") return;

                        if (event.originalEvent.deltaY <= -3) {
                            //mouse wheel up
                        } else {
                            //mouse wheel down
                        }
                    },
                }),
            ]),
            target: "map",
            layers,
        });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM