使用ArcGIS Server,可以发布geoprocessing service(GS),你可以提交作业到服务器上,它可以自动返回结果集。这一过程是通过在arcgis中建立model完成的。
在创建gs之前,应该注意以下几点:
1、建立gs的必要条件?
首先,需要在ArcGIS Desktop中使用ModelBuilder工具建立一个model。所谓的model就是一个由geoprocessing tools和脚本组成的一系列处理流程。单独的tools或者scripts是不能作为gs的,它们必须是包含在model中。
2、model可以使用的数据类型
gs支持有限的输入与输出数据类型,发布gs前必须保证数据类型的正确性。
3、服务器作业路径
在安装ArcGIS Server的时候,gs的有默认的c:\arcgisserver\arcgisjobs路径。当你使用gs时,model的间接的和最终输出数据都存储在这里。每一个model或者job都有单独的文件夹,这样可以防止发生混淆。
这个作业路径的主要目的就是帮助你管理好输出数据的,所以我们不用去考虑model envrionment中的scratch和current workspaces问题。
具体流程:
1、在Desktop中建立model。
再建立model时有几个注意的问题:
输入数据作为参数时,可以将它显示出来,这时候会有一个“P”出现在旁边,这样方便我们理解模型的含义。
添加tools时可以在菜单栏的geoprocessing下,用search工具去查询,可以很快找到所需要的工具。
默认情况下,在一些tools中输入数据默认的数据类型是不被gs支持的,比如Featurn Layer等。
在输出要素时候可以将输出路径设置为%SCRATCHWORKSPACE%\[name].shp,SCRATCHWORKSPACE是一个变量,它可以将间接数据存放在一个临时的位置。具体可参考arcgis的帮助文档。
2、准备好map document与model
我们使用web application来显示gs的处理结果。这里有两种方案可供选择,一个是将model的结果直接显示在客户端。另一种是将结果放在服务器,服务器把完成后的图像传送给客户端。它们之间的区别主要是在符号化上面。后一种方法更为强大。
step:
创建好一个map document,添加一些数据,然后将model添加进来,model需要放在最上面的图层上。勾选geoprocessing中的options选项中的Overwrite the outputs of geoprocessing operations。
Remember: Having a tool layer in your map is the key to getting a geoprocessing service that will work with your map service.
再有,在发布gs前,必须先运行一次model。
保存好map document,接下来发布gs。
发布gs
这里需要注意的是权限的问题,即SOC用户有权去访问数据,作业路径是否授权等。
有两种方法可以发布gs,其一是发布GIS Resource,其二是发布Map service。区别在于它的自动化程度,GIS Resource设置较少,基本是自动发布,而map service需要手工输入些参数等。
无论用那种方式,在选择capabilities要勾选Geoprocessing,打开地理处理功能。
具体过程较为简单,可参考相关文档。
创建web application
需要注意的是其中的一些设置问题:
1、geoprocessing是通过添加task实现的,可直接通过support service添加我们建立好的gs。
2、add layer在这里的含义是添加你的map service,在这里,即刚刚发布的GIS Resource建立的service。
按照以上步骤,结果基本如下图所示: