Javascript 如何在openlayers 3中点击按钮切换geojson层可见性?

Javascript 如何在openlayers 3中点击按钮切换geojson层可见性?,javascript,openlayers-3,Javascript,Openlayers 3,我通过以下方式添加了几个geojson层: var layer1 = new ol.layer.Vector({ title: 'Geojson 1', source: new ol.source.Vector({ url: 'geojson1.json', format: new ol.format.GeoJSON() }) }); map.addLayer(layer1)

我通过以下方式添加了几个geojson层:

    var layer1 = new ol.layer.Vector({
        title: 'Geojson 1',
        source: new ol.source.Vector({
            url: 'geojson1.json',
            format: new ol.format.GeoJSON()
        })
    });

    map.addLayer(layer1);
    var layer1 = new ol.layer.Vector({
        title: 'Geojson 2',
        source: new ol.source.Vector({
            url: 'geojson2.json',
            format: new ol.format.GeoJSON()
        })
    });

    map.addLayer(layer2);

如何在地图外部创建一个按钮切换层1和另一个按钮切换层2,该按钮具有onclick事件,以便在单击时显示和隐藏相应的层

以layer1为例,您可以将其绑定到button元素,与layer2类似:

如果您有很多这样的层/按钮,则助手函数可以概括该步骤并使其更干净:

var bindLayerButtonToggle = function (btnId, layer) {
    document.getElementById(btnId).onclick = function() { 
        layer.setVisible(!layer.getVisible());
    };
}
然后你可以做:

bindLayerButtonToggle("myBtn", layer1);
bindLayerButtonToggle("myBtn2", layer2);
bindLayerButtonToggle("myBtn", layer1);
bindLayerButtonToggle("myBtn2", layer2);