Is it possible to get a list of all the layers served by geoserver? I.e. is there some specific url request to send that does this?
How to get list of layers from geoserver
here is a WMS parser/beautifier (I'm new to this and it helped) geoportal.bayern.de/getcapabilities/… –
Leaved
The capabilities links on the geoserver home page each list layers served via various services:
- the WMS capabilities lists layers that support requests for tiled images
- the WFS capabilities lists layers that support requests for vector data
- the WCS capabilities lists layers that support raster queries
A sample WMS request would look like this:
http://demo.opengeo.org/geoserver/wms?request=GetCapabilities&service=WMS&version=1.0.0
How can I get capability of only one layer? Can I get capability of layer by passing layername? –
Qp
No. The only thing you can do is using workspaces to split layers into multiple groups and then perform the getcapability at the workspace level, check this link docs.geoserver.org/latest/en/user/services/…. As an alternative you can make calls to the REST administrative interface of GeoServer but then you need to be an admin. –
Scherman
your url is wrong, please amend –
Nephrosis
So just for completeness, here's an example of how to get a list/array of layers:
var formatter = new OpenLayers.Format.WMSCapabilities();
var endpoint = "path/to/wms/endpoint";
var layers = [];
// async call to geoserver (I'm using angular)
$http.get(endpoint + 'request=GetCapabilities').
success(function(data, status, headers, config) {
// use the tool to parse the data
var response = (formatter.read(data));
// this object contains all the GetCapabilities data
var capability = response.capability;
// I want a list of names to use in my queries
for(var i = 0; i < capability.layers.length; i ++){
layers.push(capability.layers[i].name);
}
}).
error(function(data, status, headers, config) {
alert("terrible error logging..");
});
© 2022 - 2024 — McMap. All rights reserved.