WMS GetFeatureinfo для функциональных слоев
Я ищу способ использовать браузер для запроса всех функций WMS (со всеми атрибутами, которые есть у объекта), просто определяя параметр слоя или какие параметры мне нужно добавить, чтобы получить желаемый результат? Запросить все функции, которые обслуживает WMS, формат вывода должен быть txt, gml или xml. Что-то вроде этого...
wms?request=GetFeatureInfo&QUERY_LAYERS=my_layer&info_format=application/vnd.ogc.gml&select_all_features.
2 ответа
Это невозможно, операция WMS GetFeatureInfo извлекает местоположение точки (координату пикселя) на изображении карты (созданном с помощью операции GetMap).
Кроме того, WMS также не предоставляет функции, которые она предоставляет изображения (или видео), которые часто представляют некоторые входные данные, но не всегда, набор векторных данных.
То, что вам нужно, - это WFS (или WCS), это сервисы "загрузки", которые позволяют вам получать реальные данные.
Это невозможно с помощью WMS, но с помощью WFS вы можете получить всю GetFeatureInfo, а также применить некоторое ограниченное количество условий для получения желаемых результатов.
Для этого вам нужно использовать WFSREQUEST=GetFeature
Документация для WMS GetFeature описывает различные параметры более подробно.
Простым примером будет
GET
http://example.com/geoserver/wfs?
service=wfs&
version=2.0.0&
request=GetFeature&
typeNames=namespace:featuretype&
count=N
GET
http://example.com/geoserver/wfs?
service=wfs&
version=1.1.0&
request=GetFeature&
typeName=namespace:featuretype&
maxFeatures=N
Если вы хотите фильтровать по BBOX, вы можете использовать следующее, как указано в документации.
POST
http://example.com/geoserver/wfs?
service=wfs&
version=2.0.0&
request=GetFeature&
typeNames=namespace:featuretype&
srsName=CRS&
bbox=a1,b1,a2,b2
Для меня это сработало и с GET.
Обратите внимание, еслиbbox=a1,b1,a2,b2
не работает, попробуйbbox=a1,b1,a2,b2,CRS
Для меня даже сsrsName=CRS&bbox=a1,b1,a2,b2
я получил"features": [],
сsrsName=CRS&bbox=a1,b1,a2,b2,CRS
я получил результаты