ArcGIS地理处理服务概念的开源替代方案?


15

我正在搜索实现Esri使用地理处理服务构建的逻辑的任何示例。您可以创建一个自定义工具,也可以是一个系统工具>>将其发布为Web服务,然后将此功能公开>>您可以通过客户端使用该Web服务。

一个简单的经典示例:用户可以在地图上单击以创建一个点>将坐标发送到服务器>在后端执行缓冲操作>将缓冲区特征(或仅是图像)发送回客户端并显示在地图画布上。最近3年来,我一直在开发Esri GP服务,尤其是从版本10.1开始,这一直是不错的体验。

是否有任何开源系统/解决方案示例可用于构建类似的逻辑?

我已经在Google上搜索并找到了sextante gis,但是关于它如何工作以及通过Esri可以使用多少逻辑没有具体说明。52North似乎也正在对此进行研究,但是我再次错过了对该概念的清晰解释。

Answers:


6

使用预先存在的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那样简单,但是如果您使用开源,它将免费。

无论您决定采用哪种路线,都可以在此处进行更新,因为这是一个很棒的话题!


非常感谢,很好的答案。您指定了我要记住的备选方案之一-从JS网页触发Python .py文件,该文件存储由用户提交的数据,将该数据提供给Python函数,然后将输出结果返回到Web浏览器。这里的事情是,您将需要从头开始编写大多数GP工具。不过,您共享的GeoTools链接看起来很有趣。看到由GeoServer在后端执行的GP操作的​​任何实时示例真是太酷了!
Alex Tereshenkov 2014年

2

适用于Qgis的OpenGeo插件可以使用托管在geoserver上的wps服务。它的功能类似于arcgis如何使用其工具箱,它将要求启用wps服务并且该过程可用。您还应该签出pyWPS


您能详细介绍一下QGIS插件吗?它将仅仅是可以使用WPS服务的桌面客户端吗?我对编写WPS服务感兴趣,然后在与Esri相似的工作流程中创作WPS服务(或者在具有更多配置和可接受的少量编程的情况下,与之接近)。也许您可以共享有关从任何桌面GIS到GeoServer或另一个GIS服务器平台开发wps服务的信息?
Alex Tereshenkov 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.