javascript - 如何在 Open Layers 3 中使用一个不透明度 slider 为三层创建不透明度?

标签 javascript css html openlayers-3 opacity

我有三个图层,我只想为三个图层创建一个不透明度 slider 。我已经完成了一些代码,但它仅适用于单个图层的单个不透明度 slider 。我想在一个不透明度 slider 中显示所有三个图层。

var layout =new ol.layer.Group({
                                title:'layout',
                        layers: [
                                new ol.layer.Tile({
                                  source: new ol.source.TileWMS({
                                    url: 'http://xx.xx.xxx.xxx:8080/geoserver/gwc/service/wms',
                                        hidpi: false,
                                        params: {
                                            'layers': "Raster:NR_F18_12013_india"
                                        }
                                    })
                                }),
            new ol.layer.Tile({
                                    title:'boundry',
                                    source: new ol.source.TileWMS({
                                    url: 'http://xx.xx.xxx.xxx:8080/geoserver/gwc/service/wms',
                                        hidpi: false,
                                        params: {
                                            'layers': "Raster:NR_F14_12000_India"
                                        }
                                    })
                                }),
                    new ol.layer.Tile({
                                     title:'b_90',
                                    source: new ol.source.TileWMS({
                                        url: 'http://xx.xx.xxx.xxx:8080/geoserver/gwc/service/wms',
                                        hidpi: false,
                                        params: {
                                            'layers': "Raster:NR_F10_11992_india"
                                        }
                                    })
                                })
                            ]
                    });
             var map = new ol.Map({
                target: 'map',
                layers: [
                    new ol.layer.Group({
                        'title': 'Base maps',
                        layers: [
                           new ol.layer.Tile({
                           source: new ol.source.OSM()
                            })
                                ]
                    }),layout],

                    target: 'map',
                    view: new ol.View({
                    center: ol.proj.transform([85.5639,22.6726], 'EPSG:4326', 'EPSG:3857'),
                                    zoom:5,
                                    minZoom:3,
                                    maxZoom: 70
                })
              });

              var checkbox_study = document.getElementById('visible4');
                        if(checkbox_study)
                        {
                        checkbox_study.addEventListener('change', function () {
                                layout.setVisible(this.checked);
                        });
                        }

                        function bindInputs(layerid, layer) {
                            var opacityInput = $(layerid + ' input.opacity');

                            opacityInput.on('input change', function () {
                                layer.setOpacity(parseFloat(this.value));
                            });
                            opacityInput.val(String(layer.getOpacity()));
                        }
                        map.getLayers().forEach(function (layer, i) {
                            bindInputs('#layer' + i, layer);
                            layer.getLayers().forEach(function (sublayer, j) {
                                bindInputs('#layer' + i + j, sublayer);
                            });
                        });

我的代码中是否有任何遗漏。这是一层不透明度的工作代码,谢谢。

最佳答案

这个问题在 Viglino 的帮助下得到了解决。 请检查以下 Viglino OL3-GitHub 存储库上的链接。 Github Link

关于javascript - 如何在 Open Layers 3 中使用一个不透明度 slider 为三层创建不透明度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46703786/

相关文章:

javascript - 动态重新加载后的 jQuery 选择器和 $(this)

Jquery 滑动面板

javascript - 显示测验的下一个按钮

javascript - 如何在单击一个 div 时阻止功能以及如何在单击另一个 div 时重新激活

Javascript 选择框 - 使图像出现而不是文本

php - 在 Opencart 的 CKEditor 中插入图像时如何禁用上传选项卡?

javascript - 如何使用 JQuery 在 asp.net 的 TextBox 中输入日期时进行验证?

javascript - 临时局部变量的 Angular 指令

javascript - 有没有办法在 IE 中获取边框半径和渐变背景?

JavaScript 滚动到底部不起作用