This page last changed on Jan 21, 2013 by jive.


Add nested layer groups support, allowing a layer group to be a child of another layer group.

Proposed By

Savazzi Davide

Assigned to Release



Under Discussion, In Progress, Completed, Rejected, Deferred


Motivation is the same as GSIP 84: our objective is to manage a layer tree using layer groups. With GSIP 84 we introduced one level hierarchies, introducing a layer group type that exposes its nested layers. To manage a layer tree with more than one level, layer groups must be able to contain other layer groups as children.


A layer group will contain layers and layer groups in the same children list.
To have an homogeneous list we'll extract a common interface from LayerInfo and LayerGroupInfo.
They both extend the CatalogInfo interface, but they share other properties so we could create a new super interface: PublishedInfo.

These are the properties that LayerInfo and LayerGroupInfo share and
that can be included in the new super interface:

  • name
  • prefixedName
  • workspace
  • title
  • abstract
  • metadata
  • authorityURLs
  • identifiers

LayerGroupInfo method getLayers() will return a list of layers and layer groups.
Method getStyles() will contain null entries for layer groups.

The work will be based on changes already made for GSIP 84 where LayerGroupInfo has two new methods layers() and styles(). These methods are used by the WMS service to retrieve layers and styles.

layers() will continue to return a list of LayerInfo, so the LayerGroup will expand nested LayerGroups to expose only a list of Layers.

styles() will continue to return a list of StyleInfo with a 1-1 correspondence to layers(), so the LayerGroup will expand nested LayerGroups styles.


This section should contain feedback provided by PSC members who may have a problem with the proposal.

Backwards Compatibility

WMS Path feature will be deprecated and we will create documentation on how replace its usage using nested layer groups.


Alessio Fabiani: +0
Andrea Aime: +1
Ben Caradoc-Davies: +0
Christian Mueller +0
Gabriel Roldán: +1
Jody Garnett: +1
Jukka Rahkonen: +0
Justin Deoliveira: +1
Phil Scadden: +0
Simone Giannecchini: +0


[JIRA Task|]
Email Discussion
[Wiki Page|]

Document generated by Confluence on May 14, 2014 23:00