Skip to content

Layer Groups

Simone Giannecchini edited this page Aug 1, 2013 · 1 revision

Layer Groups

Layer Group REST encoding has changed in GeoServer 2.3: if you want to read Layer Groups in GeoServer 2.3 or greater, you need at least geoserver-manager 1.5.1.

To get all Layer Groups:

RESTLayerGroupList allGroups = reader.getLayerGroups();
RESTLayerGroupList workspaceGroups = reader.getLayerGroups(workspace);

To get a specific Layer Group:

RESTLayerGroup groupReader = reader.getLayerGroup(groupName);
RESTLayerGroup groupReader = reader.getLayerGroup(workspace, groupName);

Available properties in GeoServer 2.2:

groupReader.getName();
groupReader.getWorkspace();
groupReader.getCRS();
groupReader.getMinX();
groupReader.getMaxX();
groupReader.getMinY();
groupReader.getMaxY();

Additional properties in GeoServer 2.3:

groupReader.getMode();
groupReader.getTitle();
groupReader.getAbstract();
groupReader.getRootLayer();

To get a list of layers contained in the group, in GeoServer 2.2:

RESTLayerList layers = groupReader.getLayerList();

Since GeoServer 2.3, a Layer Group can contain also other Layer Groups, its xml encoding doesn't contain a list of layers, but a list of publishable elements. To get a list of layers and layer groups contained in the group, in GeoServer 2.3:

RESTPublishedList publishables = groupReader.getPublishedList();

To configure a Layer Group for GeoServer 2.2 you can use the encoder GSLayerGroupEncoder. For GeoServer 2.3 you must use GSLayerGroupEncoder23.

To create a new Layer Group:

GSLayerGroupEncoder23 groupWriter = new GSLayerGroupEncoder23();
groupWriter.addLayer("topp:cities");
groupWriter.addLayerGroup("tasmania");
publisher.createLayerGroup(workspace, groupName, groupWriter)

To update an existing Layer Group:

publisher.configureLayerGroup(workspace, groupName, groupWriter)