OpenLayers3的图层切换器(bindto replacement)

时间:2018-03-14 00:16:27

标签: javascript jquery for-loop foreach openlayers-3

为了从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层,在加载时检查并可见,其他未选中且不可见。 (我不知道如何在内部结合这些事件"循环 - 坚持下去)

0 个答案:

没有答案