如何从Geoserver获取图层列表

12

是否有可能获取Geoserver提供的所有图层列表?即,是否存在一些特定的URL请求可以执行此操作?


这里有一个 WMS 解析器/美化工具(我是新手,它很有帮助)https://geoportal.bayern.de/getcapabilities/;jsessionid=451FDFA90393C2C3F073949CF7715707?wicket-crypt=g-lD2bjSH6E - Ivan Ferrer Villa
2个回答

9

1
我怎么能获取一个图层的功能?我能通过传递图层名称来获取图层的功能吗? - prem30488
不,你唯一能做的就是使用工作区将图层分成多个组,并在工作区级别执行getcapability操作,参见此链接http://docs.geoserver.org/latest/en/user/services/virtual-services.html。作为替代方案,您可以调用GeoServer的REST管理界面,但这时您需要成为管理员。 - simogeo

4

为了完整起见,这里提供一个获取图层列表/数组的示例:

        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..");
        });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接