我有一张Leaflet地图,其中包含一系列覆盖层和使用L.control.layers设置的基础层。我想要一个不透明度滑块Leaflet.OpacityControls,它适用于所选图层,下面有基础层。
展望L.control.layers
:
for (var i = inputs.length - 1; i >= 0; i--) {
input = inputs[i];
layer = this._getLayer(input.layerId).layer;
hasLayer = this._map.hasLayer(layer);
和layer
是
layer = NewClass {_url: "http://crores.s3.amazonaws.com/tiles/bkm/{z}/{x}/{y}.png", options: Object, _events: Object, _initHooksCalled: true, _leaflet_id: 98}
<{1}} 中的或更高版本
util.js
和stamp: function (obj) {
/*eslint-disable */
obj._leaflet_id = obj._leaflet_id || ++L.Util.lastId;
return obj._leaflet_id;
是
obj
除了我不确定这是显示控制面板的一部分还是当前活动的覆盖层。在任何情况下,一旦页面完成加载,这些变量就不可用。他们可能是,但他们的问题的关键可能是如何访问它们。
不透明度滑块的示例是对覆盖层进行硬编码。
obj = NewClass {_url: "http://crores.s3.amazonaws.com/tiles/baistDetail/{z}/{x}/{y}.png", options: Object, _events: Object, _initHooksCalled: true, _leaflet_id: 100}
其中map.addControl(opacitySlider);
opacitySlider.setOpacityLayer(overlay);
overlay.setOpacity(0.5);
是Leaflet图层。如何将overlay
设置为所选的叠加图? L.control.layers知道,但是如何将它传递给opacitySlider。
我无法相信这不是常见的需求,但却没有找到任何东西。
Leaflet.OpacityControls的相关部分:
overlay
我的网站未实施不透明度滑块:https://stark-cove-20051.herokuapp.com/streets/156。很多beta。
答案 0 :(得分:0)
https://gis.stackexchange.com/questions/92677/getactivelayers-for-leafletjs
我记得要检查gis ......这是两年前的回答。天文尚未尝试过。回应是找到活动层。