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

Maps 传单:如何控制图层组的不透明度?,maps,leaflet,opacity,layer,Maps,Leaflet,Opacity,Layer,一些专家知道如何通过使用HTML滑块输入来更改图层组的每个tilemap的不透明度吗 例如:我有几个tilemaps,可以使用Lealet的Layercontrol按钮进行切换,如下所示:。 当使用“不透明度”滑块时,我希望使每个瓷砖贴图变暗,而不仅仅是一个实际处于活动状态。例如:我正在将贴图1暗显为0.5 然后切换到map2,其不透明度也应为0.5。当使用滑块将map2的不透明度更改为0.8并切换回map1时,map1应已再次具有不透明度0.8,而不是先前调整的值0.5 我知道如何实现滑块控制

一些专家知道如何通过使用HTML滑块输入来更改图层组的每个tilemap的不透明度吗

例如:我有几个tilemaps,可以使用Lealet的Layercontrol按钮进行切换,如下所示:。 当使用“不透明度”滑块时,我希望使每个瓷砖贴图变暗,而不仅仅是一个实际处于活动状态。例如:我正在将贴图1暗显为0.5 然后切换到map2,其不透明度也应为0.5。当使用滑块将map2的不透明度更改为0.8并切换回map1时,map1应已再次具有不透明度0.8,而不是先前调整的值0.5

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

nameOfMaplayer.setOpacity(opacityValue);

但是我不知道如何使用传单的方法来引用所有瓷砖贴图的窗格/网格层/数组,从而同时更改贴图的窗格不透明度,而不是每个单独瓷砖贴图的不透明度。

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

如果要更改tilePane=基础贴图层和覆盖贴图层的不透明度:

map.getPane('tilePane').style.opacity = 0.5;
但这也有一个缺点,那就是叠加瓷砖贴图也会变暗,这是我想要避免的

我喜欢的方法是只更改活动底图层的不透明度。由于传单不支持获取活动的basemap层,因此您必须使用Activelayers插件并使用其方法:

ctrLayer = L.control.activeLayers(baseMaps, overlayMaps, {position: 'topright'}).addTo(map);
.....
tilemapLayer = ctrLayer.getActiveBaseLayer().layer;
tilemapLayer.setOpacity(actualOpacityValue);
每次更改底图时,都必须运行后面的2个命令,将新底图的Opportacity更改为实际使用的不透明度值