是否有专家知道如何使用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的不透明度。
答案 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个命令,将新底图的难度更改为实际使用的不透明度值。