Home Reference Source

src/urlapi/handling/visibleLayers.js

/**
 * @type {URLParameter}
 */
export const visibleLayersParam = {
  keys: ['vislay'],
  setEvent: 'afterConfiguring',
  setToMap: (map, query) => {
    if (query.isSet('vislay')) {
      const layerIds = query.getArray('vislay')

      map.getLayerGroup().recursiveForEach(layer => {
        layer.setVisible(layerIds.indexOf(layer.get('id').toString()) > -1)
      })
    }
  },
  getFromMap: (map, query) => {
    if (!query.isExcluded('vislay')) {
      const layerIds = []

      map.getLayerGroup().recursiveForEach(layer => {
        if (layer.getVisible()) {
          layerIds.push(layer.get('id'))
        }
      })

      return {
        vislay: layerIds.join(',')
      }
    }
  }
}