src/urlapi/handling/availableLayers.js
/**
* @type {URLParameter}
*/
export const availableLayersParam = {
keys: ['avalay'],
setEvent: 'afterConfiguring',
setToMap: (map, query) => {
if (query.isSet('avalay')) {
const layerIds = query.getArray('avalay')
if (layerIds.length > 0) {
// let visibleBaseLayer
// let countAvailable = 0
map.getLayerGroup().recursiveForEach(layer => {
// TODO: implement avaLay for new style baselayers
// if (!visibleBaseLayer && layer.getVisible()) {
// visibleBaseLayer = layer
// }
const available = layerIds.indexOf(layer.get('id').toString()) > -1
layer.set('available', available)
// if (available) {
// countAvailable++
// }
})
// // make at least one baselayer visible
// if (countAvailable === 0) {
// visibleBaseLayer.set('available', true)
// visibleBaseLayer.setVisible(true)
// }
}
map.get('configurator').configureUI()
}
},
getFromMap: (map, query) => {
const layerIds = []
map.getLayerGroup().recursiveForEach(layer => {
if (layer.get('available')) {
layerIds.push(layer.get('id'))
}
})
return {
avalay: layerIds.join(',')
}
}
}