繁体   English   中英

OpenLayers setOpacity在selectFeature中由于多层而失败

[英]OpenLayers setOpacity fails with multiple layers in selectFeature

使用OpenLayers 2.13。 我有一个包含2个矢量图层的地图,以及一个允许调整图层不透明度的JQuery滑块。

如果我将选择器设置为同时包含两个图层(用于突出显示和弹出窗口),则无法使用JQuery滑块来调整不透明度(layername.setOpacity(x)无法设置图层的不透明度)。 如果只有一层参与选择器,则setOpacity可以正常工作。 两层都使用相同的styleMap。

$("#slider-id").slider({
value: 70,
min: 10,
max: 100,
step: 10,
slide: function(e, ui) {
    layer1.setOpacity(ui.value / 100);
    layer2.setOpacity(ui.value / 100);
} });

此选择器允许为两个图层设置不透明度:

var selector = new OpenLayers.Control.SelectFeature(layer1,{ 
hover:false
});

但是此选择器不会(setOpacity()不管如何都会失败):

var selector = new OpenLayers.Control.SelectFeature([layer1, layer2],{ 
hover:false
});

选择器已添加并激活。

map.addControl(selector);
selector.handlers.feature.stopDown = false; //allow dragging on map
selector.activate();

有什么方法可以让多个图层参与选择器,同时允许更改不透明度?

回答您自己的问题可能是不好的形式,但是我找到了一种解决方法,并将其发布在这里给有此问题的其他任何人。

更改不透明度之前,请停用选择器。

$("#slider-id").slider({
value: 70,
min: 10,
max: 100,
step: 10,
slide: function(e, ui) {
    selector.deactivate();
    layer1.setOpacity(ui.value / 100);
    layer2.setOpacity(ui.value / 100);
    selector.activate();
}

暂无
暂无

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

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