2016-08-12 55 views
0

有没有办法将复选框更改事件绑定到功能选择事件?例如,以下内容可以用于图层可见性。OpenLayers 3 - 将选择功能绑定到复选框

<input type="checkbox" id="visible" checked> 
var visible = new ol.dom.Input(document.getElementById('visible')); 
visible.bindTo('checked', layer, 'visible'); 

我想允许用户从表中选择功能。

回答

0

Fiddle


function getLayerByName(value) { 
    var layer; 
    var found = map.getLayers().getArray().some(function(each){ 
    //discard layers other than ol.layer.Vector 
    if(each instanceof ol.layer.Vector) { 
     layer = each.get('name') === value ? each: undefined; 
    } 
    if(layer) return true; 
    return false; 
    }); 
    return layer ? layer : false; 
} 

function toggleVisibility(element) { 
    var layer = getLayerByName(element.value); 
    if (element.checked) { 
    layer.setVisible(true); 
    } else { 
    layer.setVisible(false); 
    } 
} 
+0

感谢但这并不说明我会如何来的复选框功能选择绑定事件。你能详细说明吗?非常感谢。 – MoreScratch

+0

查看最新的答案 - @MoreScratch –

+0

对不起乔纳塔斯我不认为我已经很好地解释了这个问题。这是我正在做的。对于呈现的每个要素,我都会在表格中创建一行,每行对应一个复选框。当用户选中复选框时,我需要选择控件来选择地图上的功能。相反,当用户在地图上选择一个功能时,我需要检查表格中相应的复选框。我不需要担心图层可见性 - 图层始终可见。 – MoreScratch