首页 文章

如何从geoserver获取图层列表

提问于
浏览
10

是否有可能获得geoserver服务的所有图层的列表?即是否有一些特定的URL请求发送这样做?

2 回答

  • 9

    geoserver主页上的功能链接每个列出通过各种服务提供的层:

    • WMS功能列出了支持平铺图像请求的图层

    • WFS功能列出了支持矢量数据请求的层

    • WCS功能列出了支持栅格查询的图层

    示例WMS请求如下所示:

    http://demo.opengeo.org/geoserver/wms?request=GetCapabilities&service=WMS&version=1.0.0

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

相关问题