Використання наявних WPS або Building Them
Тут знайдеться цілий опис / підручник щодо служб веб-обробки (WPS) . Більшість цього буде зроблено за допомогою HTTP-запитів, надісланих на такий сервер, як GeoServer, який розміщує цей процес. Посилання GeoServer окреслить загальний процес хостингу та виклику WPS за допомогою їх програмного забезпечення. Розширення WPS GeoServer поставляється з процесами JTS Topology Suite, що є бібліотекою загальних просторових функцій, таких як буферизація та операції перетину. Ось їхній приклад щодо виконання операції буфера за допомогою бібліотеки JTS.
Інші способи
Є й інші способи зробити це. Наша веб-команда використовує запити до їх бази даних PostGRE / PostGIS, щоб зробити простий аналіз, але я не в повній мірі з цим ознайомлений.
Одна ідея, яку я почав досліджувати, включає використання скриптів з відкритим кодом python, таких як PySal / GDAL, щоб зробити просторовий аналіз. Вам потрібно буде використовувати деякі JavaScript / AJAX (або будь-яку мову на стороні сервера), щоб виконати ці сценарії на вашому сервері та виплюнути результати. Це був би складний варіант, але я вважаю, що це дасть вам кращі варіанти налаштування на відміну від ESRI.
Я думаю, ви повинні мати можливість розбивати функції на рядок GeoJSON, щоб перейти як параметр у сценарії python. Звідти вам потрібно буде перетворити цей результат назад у рядок GeoJSON, щоб передати його клієнту для відображення. Пакети Python, такі як Shapely, можуть інтерпретувати рядок GeoJSON. Іншим може знадобитися певна обробка записів для використання GeoJSON, або може бути кращий варіант, про який я не думав використовувати.
Іншим варіантом було б використання GeoTools для написання веб-програми Java, яка б робила просторовий аналіз. Це також підтримує рядки GeoJSON і має деякі вбудовані функції просторового аналізу. У них є скріншоти, на яких показані різні їх програми.
Доцільно створити свій власний WPS або запустити сценарій на стороні сервера. Це буде не так просто, як це робить ESRI, але це буде безкоштовно, якщо ви використовуєте відкритий код.
Який би маршрут ви не вирішили, оновіть його тут, оскільки це чудова тема!