2016-08-12 124 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