宣传单:如何控制图层组的不透明度?

时间:2017-01-20 17:37:52

标签: maps leaflet opacity layer

是否有专家知道如何使用HTML滑块输入更改图层组 不透明度

例如:我有几张瓷砖地图,可以使用Lealet的Layercontrol按钮切换,如下所示:Leaflet Layer Groups。 使用不透明度滑块时,我想调暗每个贴图,不仅仅是一个实际处于活动状态。例如:我将map1调暗到0.5 然后切换到map2,它的不透明度也应该是0.5。当使用滑块将map2的不透明度更改为0.8并切换回map1时,map1应该已经再次具有不透明度0.8(不是之前的调整值0.5)

我知道如何使用命令实现滑块控件以及如何更改单个tilemap 的不透明度

nameOfMaplayer.setOpacity(opacityValue);

但我没有想法如何引用使用Leaflet的方法来改变 Pane / Grid Layer /所有tilemaps数组来改变地图的窗格不透明而不是每个单独的tilemaps的不透明度。

1 个答案:

答案 0 :(得分:1)

我想最终我自己找到了一个令人满意的答案:

如果我们想要更改tilePane的不透明度(= basemap-layers和overlaymap-layers):

map.getPane('tilePane').style.opacity = 0.5;

但是这样做的缺点是Overlay-tilemaps也会变暗,我想避免。

我首选的方法是仅更改活动底图图层的不透明度。由于Leaflet不支持获取活动底图图层,因此您必须使用" Activelayers" -Plugin 并使用其方法:

ctrLayer = L.control.activeLayers(baseMaps, overlayMaps, {position: 'topright'}).addTo(map);
.....
tilemapLayer = ctrLayer.getActiveBaseLayer().layer;
tilemapLayer.setOpacity(actualOpacityValue);

每次更改底图时,都必须运行后面的2个命令,将新底图的难度更改为实际使用的不透明度值。

相关问题