(九)ArcGIS JS GP服务简介及服务发布
目录
GP服务简介
Geoprocessor是用py写的脚本,它简单语法,并可以调用大部分ArcGISToolBox里的现有工具,十分强大。
Geoprocessing被称之为地理处理,实际上就是ToolBox里的各种tools用py连接起立,连续处理而不用反复操作单个工具,流程化了。
ArcGIS还提供了一个可视化的构建Geoprocessor工具,叫ModelBuilder。
在WebGIS开发当中,虽然ArcGIS API提供给我们很多的接口,但是现实需求总是千变万化的,很多可能部分需求在我们的API中没有实现,而GP服务就弥补了这一个缺点,我们可以将ArcGIS中的GP工具发布为服务,提供给我们前端调用。
GP服务从返回类型上可以分为:
- 返回矢量数据
- 返回栅格数据
GP服务的参数
在ArcGIS中,GP工具的参数和GP服务的参数是有一个对应参数的,在现实开发中,GP服务总是容易调用失败,这很有可能便是GP服务的参数不对应导致,因此:当我们发布GP服务时,参数便是我们高度重视的地方。以下是GP服务和GP工具参数对应表:
GP服务的调用方式
我们可以在官方API Reference中esri/tasks/Geoprocessor查看调用GP接口的详细信息。
官方中开始描述中:
Represents a GP Task resource exposed by the ArcGIS Server REST API. A GP Task resource represents a single task in a GP service published using the ArcGIS Server and it supports one of the following operations:
- “execute” – performed on a GP Task resource when the execution type is synchronous.
- “submitJob” – performed on an asynchronous GP Task resource.
由此可知,esri在封装GP调用时分为了“同步调用”和“异步调用”。
- 同步,是所有的操作都做完,才返回给用户结果。
- 异步,不用等所有操作等做完,就相应用户请求。在较为复杂的GP分析时,用户体验较好。
同步调用和异步调用实现主要体现在服务的发布和前端调用的方法不同。
发布GP服务
在本实例中以缓冲区分析为例,发布一个GP服务。
我们在前端选择一个要素,按照选择缓冲距离进行创建缓冲区。
在ArcGIS10.1版本以后,发布GP服务之前需要将GP工具成功运行一次才可。发布GP服务的步骤大致分为以下几步:
- 创建GP模型
- 修改模型参数,运行模型
- 在结果窗口将运行成功的GP模型共享为服务
2.1创建GP模型
- 工具箱->我的工具箱->右键新建模型buffer
- 从ArcToolBox中选择缓冲区分析(Spatial Analysis->邻域分析)拖到modelBuilder中,右键选择输入变量
- 将输入要素、距离、输出要素设置为模型参数,这样输入输出就变成可配置式的。
- 本例中的设想面对前端要素进行缓冲区分析,所以将输入要素属性的数据类型属性设置为要素类。
- 双击输入要素和距离参数,输入要素进行模拟运行
- 可以得到正确的运行结果即可
- 将模型中修改为英文,保存
- 双击自己新建的模型,如下图
2.2发布GP服务(同步和异步只是在最后一步设置执行模式选择不同)
- 地理处理->结果
- 当前会话->选择刚刚运行的buffer->共享为 地理处理服务
- 进入服务发布的相关设置
- GP的相关参数
- 注意:选择异步调用时,同时选择异步和查看含地图服务的结果这两项,而同步调用只需要选择第一项
- 分析、发布
- 提示成功这意味着服务已经发布,可在manager中进行查看
转载自:https://blog.csdn.net/idomyway/article/details/79444449