Альтернатива с открытым исходным кодом концепции сервиса геообработки ArcGIS?

15

Я ищу любые примеры реализации логики, созданной Esri с помощью сервисов геообработки. Вы создаете пользовательский инструмент или он может быть системным инструментом >> вы публикуете его, предоставляя эту функцию как веб-сервис >> вы используете веб-сервис с клиентом.

Классический простой пример: пользователь может щелкнуть карту, чтобы создать точку> координаты отправляются на сервер> выполняется операция буферизации на серверной стороне> функция буферной зоны (или просто изображение) отправляется обратно клиенту и показано на карте холста. Я занимаюсь разработкой сервисов Esri GP последние 3 года, и это был приятный опыт, особенно с версии 10.1.

Существуют ли примеры системы / решения с открытым исходным кодом, которые можно использовать для построения аналогичной логики?

Я гуглил и нашел sextante gis, но не было ничего конкретного о том, как это работает и какая часть логики доступна через Esri. Похоже , что сейчас над этим также трудятся, но опять же мне не хватает четкого объяснения концепции.

Алекс Терешенков
источник

Ответы:

6

Использование ранее существующего WPS или построение их

Существует целый описание / учебник по веб - сервисов обработки (WPS) здесь . Большая часть этого будет выполняться с использованием HTTP-запросов, отправляемых на сервер, такой как GeoServer , на котором размещен этот процесс. Ссылка GeoServer будет описывать общий процесс хостинга и вызова WPS с использованием их программного обеспечения. Расширение GeoServer WPS поставляется с процессами JTS Topology Suite, которые представляют собой библиотеку общих пространственных функций, таких как операции буферизации и пересечения. Вот их пример выполнения операции буфера с использованием библиотеки JTS.

Другие способы

Есть и другие способы сделать это, хотя. Наша веб-команда использует запросы к своей базе данных PostGRE / PostGIS для проведения простого анализа, но я не полностью знаком с этим.

Одна идея, которую я начал исследовать, заключается в использовании сценариев Python с открытым исходным кодом, таких как PySal / GDAL, для пространственного анализа. Вам потребуется использовать JavaScript / AJAX (или любой другой серверный язык), чтобы выполнить эти скрипты на вашем сервере и выложить результаты. Это будет сложный вариант, но я полагаю, что он даст вам лучшие варианты настройки в отличие от ESRI.

Я думаю, вы должны разбить объекты на строку GeoJSON для передачи в качестве параметра в скрипты Python. Оттуда вам нужно будет преобразовать этот результат обратно в строку GeoJSON для передачи обратно клиенту для отображения. Пакеты Python, такие как Shapely, могут интерпретировать строку GeoJSON. Другим, возможно, понадобится некоторый обходной путь, чтобы использовать GeoJSON, или может быть лучший вариант, о котором я даже не задумывался.

Другой вариант - использовать GeoTools для написания веб-приложения на Java, которое будет выполнять пространственный анализ. Это также поддерживает строки GeoJSON и имеет некоторые встроенные функции пространственного анализа. У них есть несколько скриншотов, показывающих их различные приложения.

Можно создать собственный WPS или запустить сценарий на стороне сервера. Это будет не так просто, как ESRI, но будет бесплатным, если вы используете открытый исходный код.

Какой бы маршрут вы ни выбрали, обновите его здесь, так как это отличная тема!

Бранко
источник
Большое спасибо, отличный ответ. Вы назвали одну из альтернатив, которые я имел в виду - запускать Python-файлы .py с веб-страницы JS, сохраняя отправленные пользователем данные, передавая эти данные в функции Python, а затем возвращая результаты вывода в веб-браузер. Дело в том, что вам нужно написать большинство инструментов GP с нуля. Ссылка на GeoTools, которой вы поделились, выглядит интересно. Было бы здорово увидеть любой живой пример работы GP, выполняемой на сервере GeoServer!
Алекс Терешенков
2

Плагин OpenGeo для Qgis может использовать службы wps, размещенные на геосервере. Он работает так же, как Arcgis использует набор инструментов, для этого потребуется, чтобы служба wps была включена и процесс был доступен. Вы также должны проверить PyWPS

Джон джедины
источник
не могли бы вы рассказать о плагине QGIS? Будет ли это просто настольный клиент, который может использовать сервисы WPS? Я заинтересован в том, чтобы создавать службы WPS тогда в аналогичном рабочем процессе, который есть у Esri (или близким к нему с большей конфигурацией и небольшим приемлемым программированием). Возможно, вы могли бы поделиться информацией о разработке сервиса wps от любой настольной ГИС до GeoServer или другой серверной платформы ГИС?
Алекс Терешенков