为了从layers数组生成复选框,我使用的是这个例子:https://openlayersbook.github.io/ch04-interacting-with-raster-data-source/example-06.html。但是,由于这部分代码:
var visible = new ol.dom.Input(document.getElementById('layer_id_' + i));
visible.bindTo('checked', layers[i], 'visible');
自v3.5.0(我使用v3.8.2)后不推荐使用,我发现我可以使用this one更改它:
var layer = new ol.layer.Tile();
var checkbox = document.querySelector('#checkbox');
checkbox.addEventListener('change', function() {
var checked = this.checked;
if (checked !== layer.getVisible()) {
layer.setVisible(checked);
}
});
layer.on('change:visible', function() {
var visible = this.getVisible();
if (visible !== checkbox.checked) {
checkbox.checked = visible;
}
});
但是因为我是JS noob,我想知道是否有人可以帮助我在上面的例子中实现这个有效的代码+除了我想只有一个层,例如来自Geoserver WMS演示的USA层,在加载时检查并可见,其他未选中且不可见。 (我不知道如何在内部结合这些事件"循环 - 坚持下去)