class WmsLayerList { constructor () { // {图层名称:[{typeName:xxx,filter:yyy}]} this.layers = [] } addConfig (config) { const typeName = config.typeName const layerGroup = config.layerGroup || typeName const filter = config.filter if (layerGroup) { this.addLayer(layerGroup, typeName, filter) } } addLayer (layerGroup, typeName, filter) { const layers = this.layers const layer = layers[layerGroup] if (layer) { layers[layerGroup].push({ typeName: typeName, filter: filter || 'INCLUDE' }) } else { layers[layerGroup] = [{ typeName: typeName, filter: filter || 'INCLUDE' }] } } remove (typeName, filter) { const layers = this.layers for (const k in layers) { if (k === typeName) { delete this.layers[k] break } for (let i = 0; i < layers[k].length; i++) { const layer = layers[k][i] if (typeName === layer.typeName && filter === layer.filter) { this.layers[k].splice(i, 1) if (this.layers[k].length === 0) { delete this.layers[k] } break } } } } getLayers () { const layers = this.layers const _layers = [] for (const k in layers) { _layers.push(k) } return _layers.join(',') } getFilters () { const layers = this.layers const cqlFilters = [] for (const k in layers) { const filters = [] for (let i = 0; i < layers[k].length; i++) { filters.push(layers[k][i].filter) } cqlFilters.push(filters.join(' OR ')) } return cqlFilters.join(';') } } export default WmsLayerList