Можно ли получить список всех слоев, обслуживаемых геосервером? т.е. есть ли какой-то конкретный URL-запрос для отправки, который делает это?
Как получить список слоев с геосервера
comment
вот синтаксический анализатор/улучшитель WMS (я новичок в этом, и это помогло) "nofollow noreferrer">geoportal.bayern.de/getcapabilities/
- person Ivan Ferrer Villa   schedule 31.03.2017
Ответы (2)
Ссылки на возможности на домашней странице геосервера содержат каждый список слоев, обслуживаемых различными службами:
- в возможностях WMS перечислены слои, поддерживающие запросы мозаичных изображений.
- возможности WFS перечисляют слои, которые поддерживают запросы на векторные данные
- возможности WCS перечисляют слои, которые поддерживают растровые запросы
Пример запроса WMS будет выглядеть так:
http://demo.opengeo.org/geoserver/wms?request=GetCapabilities&service=WMS&version=1.0.0
person
David Winslow
schedule
07.10.2010
Как я могу получить возможность только одного слоя? Могу ли я получить возможность слоя, передав имя слоя?
- person prem30488; 29.09.2014
Нет. Единственное, что вы можете сделать, это использовать рабочие области для разделения слоев на несколько групп, а затем выполнить функцию getcapability на уровне рабочей области, проверьте эту ссылку docs.geoserver.org/latest/en/user/services/. В качестве альтернативы вы можете совершать вызовы административного интерфейса REST GeoServer, но тогда вам нужно быть администратором.
- person simogeo; 25.10.2014
Итак, просто для полноты, вот пример того, как получить список/массив слоев:
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..");
});
person
danwild
schedule
11.02.2015