2016-02-09 4 views
1

Мы располагаем растрами в нашей базе данных, и мы хотим реализовать функцию внутри нашего веб-приложения, которая позволит пользователю добавлять контурные линии к карте на основе растра. Мы хотим, чтобы пользователь мог настраивать уровни и цвета контура.Функция Contouring с OpenLayers3/GeoServer

У кого-нибудь есть идея, какие инструменты я должен использовать? Я думаю, что я должен использовать расширение сценариев Python для GeoServer, но я не знаю, возможно ли реализовать такую ​​функцию.

Спасибо за ваши комментарии!

+0

В будущем вы, вероятно, получите лучшие/быстрые ответы на https://gis.stackexchange.com/ –

ответ

1

Самый простой способ создания контуров «на лету» из источника растровых данных в GeoServer - использовать преобразование рендеринга gs:Contour. Существует full example в documentation. Это показывает, как использовать SLD-файл для указания значений контура, которые затем извлекаются при визуализации и рисовании с использованием остальной части файла SLD. В примере предполагается фиксированный набор контуров с использованием статического файла, это проще всего.

Но WMS standard позволяет клиенту (OpenLayers) до upload a new SLD file с запросом карты - это именно то, что вы хотите сделать здесь. Я предлагаю вам сгенерировать рабочий файл SLD, а затем использовать выбранный вами шаблон шаблонов для вставки выбранных пользователем значений в файл перед отправкой его в GeoServer для обработки. Недостатком этого является то, что вам нужно будет отправить файл SLD с каждым запросом, а черепица, вероятно, не будет работать (вообще?). Вы можете немного ускорить работу, используя library mode для стилей, но рискуя усложнить работу клиента.