是否有专家知道如何通过使用HTML-滑块输入来改变不透明度 of --层组的每个tilemap?
例如:我有几个舵子,可以使用Lealet的Layercontrol按钮进行切换,如:小叶层组。当使用不透明滑块时,我想使每个tilemap变暗,不只是一个实际活动的。例如:我把map1调到0.5,然后切换到map2,它的不透明度也应该是0.5。当使用滑块将map2的不透明度更改为0.8并切换回map1时,map1应该已经有了0.8的不透明度(而不是前者调整的值0.5)。
我知道如何实现滑块控件,以及如何使用以下命令更改的不透明度--一个tilemap
nameOfMaplayer.setOpacity(opacityValue);
但是,我不知道如何使用传单的方法来引用到所有tilemaps的窗格/网格层/数组,以同时更改地图的窗格不透明度,而不是每个独立的tilemaps的不透明度。
发布于 2017-01-21 07:10:02
我想最终我自己找到了一个满意的答案:
如果我们想改变tilePane的不透明度(= basemap层和覆盖层):
map.getPane('tilePane').style.opacity = 0.5;
但是这也有一个缺点,那就是覆盖图会变暗,这是我想要避免的。
我更喜欢的方法是仅仅改变活动基本地图层的不透明度。由于传单不支持获取活动的基本地图层,所以您必须使用"Activelayers"-Plugin并使用它的方法:
ctrLayer = L.control.activeLayers(baseMaps, overlayMaps, {position: 'topright'}).addTo(map);
.....
tilemapLayer = ctrLayer.getActiveBaseLayer().layer;
tilemapLayer.setOpacity(actualOpacityValue);
每次更改basemap时,都必须运行后面的2个命令,以将新basemap的oppacity更改为实际使用的不透明度值。
https://stackoverflow.com/questions/41769404
复制相似问题