如何通过单击按钮在 openlayers 3 中切换 geojson 层可见性?
How to toggle geojson layer visibility in openlayers 3 on click of a button?
我通过以下方式添加了几个 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);
如何在我的地图外部创建一个按钮 "Toggle Layer 1" 和另一个按钮 "Toggle Layer 2",它们具有 onclick 事件,以便相应的图层在单击时显示和隐藏?
您可以像这样将它绑定到按钮元素(以 layer1
为例,与 layer2
类似):
document.getElementById("myBtn").onclick = function() {
layer1.setVisible(!layer1.getVisible());
};
如果您有很多这样的 layers/buttons,辅助函数可以概括该步骤并使其更清晰:
var bindLayerButtonToggle = function (btnId, layer) {
document.getElementById(btnId).onclick = function() {
layer.setVisible(!layer.getVisible());
};
}
那么你可以这样做:
bindLayerButtonToggle("myBtn", layer1);
bindLayerButtonToggle("myBtn2", layer2);
我通过以下方式添加了几个 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);
如何在我的地图外部创建一个按钮 "Toggle Layer 1" 和另一个按钮 "Toggle Layer 2",它们具有 onclick 事件,以便相应的图层在单击时显示和隐藏?
您可以像这样将它绑定到按钮元素(以 layer1
为例,与 layer2
类似):
document.getElementById("myBtn").onclick = function() {
layer1.setVisible(!layer1.getVisible());
};
如果您有很多这样的 layers/buttons,辅助函数可以概括该步骤并使其更清晰:
var bindLayerButtonToggle = function (btnId, layer) {
document.getElementById(btnId).onclick = function() {
layer.setVisible(!layer.getVisible());
};
}
那么你可以这样做:
bindLayerButtonToggle("myBtn", layer1);
bindLayerButtonToggle("myBtn2", layer2);