iclient-classic 图层事件冲突

0 投票
地图中有两个图层 一个是专题图层,另外一个是矢量图层。

专题图层设置了悬浮高亮和鼠标悬浮事件。

当激活了矢量图层的选择控件后,专题图层的事件就失效了,请问有什么办法解决?
1月 2, 2020 分类:  272次浏览 | 用户: 行者不懂 牛刀小试 (235 分)

1个回答

0 投票
您好,因为两个图层都是覆盖整个canvas的,所以会导致后面添加的图层将前面的图层整体遮挡从而使得事件无法响应,您可以通过将您的矢量图层设置为Canvas2的渲染模式来渲染,以保证两个图层的事件能够正常响应,在声明矢量图层的时候添加renderers即可

let vectorlayer = new SuperMap.Layer.Vector("vectorLayer",{renderers:['Canvas2']});
1月 2, 2020 用户: 程yan 名扬四海 (1,695 分)
您好,设置了canvas2没有作用
完整代码粘出来看下吧,还有classic的版本也发一下
            pipeWGVectorLayer = new SuperMap.Layer.Unique("pipeWGVectorLayer");
            // 图层基础样式
            pipeWGVectorLayer.style = {
                shadowBlur: 3,
                shadowColor: "#000000",
                shadowOffsetX: 1,
                shadowOffsetY: 1,
                strokeWidth: 2,
                strokeOpacity: 1
            };

            // 开启 hover 高亮效果
            pipeWGVectorLayer.isHoverAble = true;

            // hover 高亮样式
            pipeWGVectorLayer.highlightStyle = {
                stroke: true,
                strokeWidth: 3,
                strokeColor: 'blue',
                strokeOpacity: 1
            };

            // 用于单值专题图的属性字段名称
            pipeWGVectorLayer.themeField = "grade";
            // 风格数组,设定值对应的样式
            //水质颜色映射表
            pipeWGVectorLayer.styleGroups = [
                {
                    value: 1,
                    style: {
                        strokeColor: "#c5ffff"//Ⅰ类
                    }
                },
                {
                    value: 2,
                    style: {
                        strokeColor: "#34c3f6"//Ⅱ类
                    }
                },
                {
                    value: 3,
                    style: {
                        strokeColor: "#03ff03"//Ⅲ类
                    }
                },
                {
                    value: 4,
                    style: {
                        strokeColor: "#faff19"//Ⅳ类
                    }
                },
                {
                    value: 5,
                    style: {
                        strokeColor: "#FF9000"//Ⅴ类
                    }
                },
                {
                    value: 6,
                    style: {
                        strokeColor: "#ff0000"//劣Ⅴ类
                    }
                }
            ]

            //专题图层 mousemove 事件
            pipeWGVectorLayer.on("mousemove", featureHovered);

            pipeConstructionLayer = new SuperMap.Layer.Vector("pipeConstructionLayer", { renderers: ["Canvas2"] });
            loadConstructionData();

            selectCtrl = new SuperMap.Control.SelectFeature([pipeConstructionLayer], {
                onSelect: featureSelected
            });

iclaiss 版本SuperMap-8.1.1-16820.js

就是说,select控件激活后,专题图层的鼠标数据就没有了。
另外,我的图层顺序是专题图层在矢量图层的上面
用最新包试一下吧,我这边用您的代码亲测没有问题

是在这里下载最新的包吗?试了,好像还是不行。你测试代码贴我看一下吧?

...