Javascript OpenLayers setOpacity因selectFeature中的多个层而失败
使用OpenLayers 2.13。我有一个带有2个矢量层的地图,还有一个JQuery滑块,可以调整层的不透明度 如果我将选择器设置为同时包含这两个层(用于高亮显示和弹出窗口),则用于调整不透明度的JQuery滑块不起作用(layername.setOpacity(x)无法设置层的不透明度)。如果只有一个层参与选择器,则setOpacity工作正常。两个图层使用相同的样式图Javascript OpenLayers setOpacity因selectFeature中的多个层而失败,javascript,jquery,openlayers,Javascript,Jquery,Openlayers,使用OpenLayers 2.13。我有一个带有2个矢量层的地图,还有一个JQuery滑块,可以调整层的不透明度 如果我将选择器设置为同时包含这两个层(用于高亮显示和弹出窗口),则用于调整不透明度的JQuery滑块不起作用(layername.setOpacity(x)无法设置层的不透明度)。如果只有一个层参与选择器,则setOpacity工作正常。两个图层使用相同的样式图 $("#slider-id").slider({ value: 70, min: 10, max: 100, step:
$("#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()都会失败):
将添加并激活选择器
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();
}
$("#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();
}