使用预先存在的WPS或构建它们
在此处可以找到有关Web处理服务(WPS)的完整描述/教程。大多数操作将使用发送到托管此过程的服务器(例如GeoServer)的 HTTP请求来完成。GeoServer链接将概述使用其软件托管和调用WPS的一般过程。GeoServer的WPS扩展随附JTS拓扑套件流程,该流程是常见空间功能(如缓冲和交叉操作)的库。 这是他们使用JTS库执行缓冲区操作的示例。
其他方法
不过,还有其他方法可以做到。我们的网络团队使用针对其PostGRE / PostGIS数据库的查询来进行简单的分析,但是我对此并不完全熟悉。
我一直在研究的一个想法涉及使用开源python脚本(例如PySal / GDAL)进行空间分析。您将需要使用一些JavaScript / AJAX(或任何服务器端语言)来在服务器上执行这些脚本并吐出结果。这将是一个复杂的选项,但我相信它将为您提供比ESRI更好的自定义选项。
我认为您应该能够将功能分解为GeoJSON字符串,以作为参数传递给python脚本。从那里,您需要将结果转换回GeoJSON字符串,然后传递回客户端进行显示。诸如Shapely之类的 Python包可以解释GeoJSON字符串。其他人可能需要编写一些变通办法来利用GeoJSON,或者可能有一个我没有考虑过使用的更好的选择。
另一种选择是使用GeoTools编写将进行空间分析的Java Web应用程序。这也支持GeoJSON字符串,并具有一些内置的空间分析功能。他们有一些截图显示了他们的各种应用程序。
可以创建自己的WPS或运行服务器端脚本。它不会像ESRI那样简单,但是如果您使用开源,它将免费。
无论您决定采用哪种路线,都可以在此处进行更新,因为这是一个很棒的话题!