从打开的图层中删除图层不起作用
remove layer from open layers not working
我正在尝试从 GeoServer 添加图层;它工作正常,但删除层不起作用。这是我的代码:
function loadTOCLayer(layerName) {
var tl = new ol.layer.Tile({
extent: [-20037508.34, -20037508.34, 20037508.34, 20037508.34],
source: new ol.source.TileWMS( /** @type {olx.source.TileWMSOptions} */ ({
url: 'http://172.16.1.58:8080/geoserver/KBJNL/gwc/service/wms',
params: {
'LAYERS': layerName,
'TILED': true
},
serverType: 'geoserver'
}))
});
map.addLayer(tl);
}
function removeTOCLayer(ss) {
map.removeLayer(ss);
}
您正在混合图层名称和图层引用。您必须按名称保留图层索引。试试这个:
var layersByName = {};
function loadTOCLayer(layerName) {
var tl = new ol.layer.Tile({
extent: [-20037508.34, -20037508.34, 20037508.34, 20037508.34],
source: new ol.source.TileWMS( /** @type {olx.source.TileWMSOptions} */ ({
url: 'http://172.16.1.58:8080/geoserver/KBJNL/gwc/service/wms',
params: {
'LAYERS': layerName,
'TILED': true
},
serverType: 'geoserver'
}))
});
layersByName[layerName] = tl;
map.addLayer(tl);
}
function removeTOCLayer(ss) {
map.removeLayer(layersByName[ss]);
}
我正在尝试从 GeoServer 添加图层;它工作正常,但删除层不起作用。这是我的代码:
function loadTOCLayer(layerName) {
var tl = new ol.layer.Tile({
extent: [-20037508.34, -20037508.34, 20037508.34, 20037508.34],
source: new ol.source.TileWMS( /** @type {olx.source.TileWMSOptions} */ ({
url: 'http://172.16.1.58:8080/geoserver/KBJNL/gwc/service/wms',
params: {
'LAYERS': layerName,
'TILED': true
},
serverType: 'geoserver'
}))
});
map.addLayer(tl);
}
function removeTOCLayer(ss) {
map.removeLayer(ss);
}
您正在混合图层名称和图层引用。您必须按名称保留图层索引。试试这个:
var layersByName = {};
function loadTOCLayer(layerName) {
var tl = new ol.layer.Tile({
extent: [-20037508.34, -20037508.34, 20037508.34, 20037508.34],
source: new ol.source.TileWMS( /** @type {olx.source.TileWMSOptions} */ ({
url: 'http://172.16.1.58:8080/geoserver/KBJNL/gwc/service/wms',
params: {
'LAYERS': layerName,
'TILED': true
},
serverType: 'geoserver'
}))
});
layersByName[layerName] = tl;
map.addLayer(tl);
}
function removeTOCLayer(ss) {
map.removeLayer(layersByName[ss]);
}