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

私は機能selectイベントの横にあるチェックボックスをバインドするつもり方法については説明しませんが感謝。あなたは精緻化できますか?どうもありがとう。 – MoreScratch

+0

更新された回答を見る - @MoreScratch –

+0

申し訳ありませんJonatas私は問題をとてもうまく説明したとは思わない。ここに私がやっていることがあります。レンダリングされるすべてのフィーチャに対して、各行に対応するチェックボックスを備えたテーブルに行を作成しています。ユーザーがチェックボックスをチェックすると、マップ上の機能を選択するための選択コントロールが必要になります。逆に、ユーザーがマップ上の機能を選択すると、チェックするテーブルの対応するチェックボックスが必要になります。私はレイヤーの可視性について心配する必要はありません。レイヤーは常に可視です。 – MoreScratch

関連する問題