在WebGIS开发当中,虽然ArcGIS API提供给我们很多的接口,但是现实需求总是千变万化的,很多可能部分需求在我们的API中没有实现,而GP服务就弥补了这一个缺点,我们可以将ArcGIS中的GP工具发布为服务,提供给我们前端调用。
GP服务的分类GP服务从返回类型上可以分为:返回矢量数据返回栅格数据在本实例中主要演示为返回矢量数据。
在本实例中以缓冲区分析为例,发布一个GP服务。在ArcGIS10.1版本以后,发布GP服务之前需要将GP工具成功运行一次才可。发布GP服务的步骤大致分为以下几步:创建GP模型修改模型参数,运行模型在结果窗口将运行成功的GP模型共享为服务
创建GP模型新建一个工具箱并创建一个新模型取名为Mybuffer,如下图所示:
右键Mybuffer点击编辑构建缓冲区模型,如下图所示:
修改模型参数并运行模型 。修改变量名称,将变量名称改为英文,如下图所示:
右键dis,Input,out变量点击模型参数,如下图所示:
修改Input变量的数据类型,改为输入要素集,如下图所示:
设置临时命名空间,右键空白处,点击模型属性,设置环境,如下图所示:
点击保存运行模型,如下图所示:
运行成功,如下图所示:
在结果窗口将运行成功的GP模型共享为服务点击地理处理->结果打开结果窗口,如下图所示:
右键模型共享为地理处理服务,如下图所示:
服务名称为MyBuffer,存放在Test目录下,如下图所示:
将参数的执行模式改为同步,如下图所示:
将模型名称,输入参数,输出参数改为英文(如果本身是英文则不需要修改),如下图所示:
发布成功,如下图所示:
打开网址输入http://localhot:6080/arcgis/rest/services进入ArcGIS REST Services Directory,如下图所示:
进入我们的Test目录找到我们发布的服务,如下图所示:
找到GP服务的task任务查看服务的详细信息,如下图所示:
从网址执行GP服务,点击Execute Task进入执行页面,如下图所示:
在页面的Input输入以下代码点击执行,结果如下图所示:{ 'fields':[], 'geometryType':'esriGeometryPoint', 'features':[{'geometry':{'x':21266163.7,'y':4004678.1217188686,'spatialReference':{'wkid':2334,'latestWkid':2334}}}, {'geometry':{'x':21265688.294761922,'y':4008771.9365637503,'spatialReference':{'wkid':2334,'latestWkid':2334}}}], 'sr':{'wkid':2334,'latestWkid':2334}}
若出现以下结果便成功了,如下图所示: