WPS на примере Geoserver - анализ ГИС-данных на сервере
Жизненный случай: дан слой с Придорожной полосой. Имея координаты земельного участка получить координаты части этого участка, попадающей в Придорожную полосу.
Для этого можно использовать инструменты анализа в настольных ГИС, а можно использовать реализацию этих инструментов в виде специальных веб-сервисов - WPS. Рассмотрим реализацию WPS на примере геоинформационого сервера Geoserver 2.3.4.
Процесс реализующей результат пересечения - geo:intersection. Он принимает на входе 2 геометрии (GML, WKT). Одна, первая геометрия это наш участок, а в качестве другой коллекция геометрий со слоя придорожных полос.
"Наш" участок можно реализовать различными способами, главное получить список координат в используемых Geoserver WPS форматах для входной геометрии (Process inputs). Здесь рассматривается случай реализованный на Геопортале автомобильных дорог (тестовый) который отображает координаты в формате WKT.
Получение координат исходного участка реализовано в приложении для землеустройства на Геопортале автомобильных дорог (Рис.1). Пользователь рисует на карте участок и после завершения получает координаты в информационной панели.
Рис.1. Создание участка и получение его координат
Далее нужно настроить запрос в формате WPS. Для этого нужно перейти по ссылке "Demos" в панели Geoserver. На следующей странице перейти по ссылке "WPS request builder". Откроется строитель запроса показанный на Рис.2, изначально страница содержит намного меньше информации. Нужно выбрать процесс создания пересечений geo:intersection. В качестве первого входного аргумента (Process inputs a*) необходимо через буфер обмена вставить координаты участка в формате WKT.
В качестве второго входного атрибута будет использован другой процесс (subprocess). Для его выбора в списке Second input geometry вместо TEXT нужно выбрать SUBPROCESS и нажать на ссылку Define/Edit рядом со списком. В появившимся окне нужно выбрать процесс gs:CollectGeometries который возвращает коллекцию геометрического описания всех объектов выбранного векторного слоя. Здесь нужно указать необходимый векторный слой. В данном случае это geoportal:Wayside_ar. далее нажать Apply.
Рис.2. Создание процесса (WPS) пересечения в Geoserver
После этого можно запустить (Execute process) процесс. В зависимости от вида описания результата, результат можно получить в виде:
- текстового описания в формате GML полученной геометрии в отдельном окне для text/xml
- текстового файла WKT-формата для application/wkt
- текстового файла GML-формата для application/gml
Пример файла GML-формата:
<gml:Polygon srsDimension="2"><gml:exterior><gml:LinearRing srsDimension="2"><gml:posList>37.59691277662578 55.40345109740794 37.59709502402243 55.402968193115996 37.596075784597176 55.402633140224594 37.595510114492214 55.403025704467105 37.59674141842309 55.40340070004356 37.59691277662578 55.40345109740794</gml:posList></gml:LinearRing></gml:exterior></gml:Polygon>
Пример с визуализацией результата из в WKT-файла в QuantumGIS:
Рис.3. Визуализация результата в QGIS
Более подробную информацию по WPS в Geoserver можно узнать тут.
Комментарии
Отправить комментарий