|
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
|