arcgis服务之GP服务的几点问题(附GP服务发布步骤)

最近在发布GP服务时遇到了一些以前没有遇到问题,所以对GP服务进行一下总结。

一、什么是GP服务

GP服务,即Geoprocessing Service,意为地理处理服务,是将Arctoolbox中的工具或ModelBuilder中创建的工具发布为服务,以供Arcgis API For Javascript调用工具服务,辅助分析处理功能进行开发。

二、GP服务的分类

GP服务包括两类,一类是Execute task,即同步执行任务;另外一类是Submit job,即异步提交作业。

这两种GP服务是可以在发布GP服务时设置参数来选择的。

异步和同步定义客户端(使用任务的应用程序)如何与服务器交互并从任务获取结果。当服务设置为同步时,客户端等待任务完成。通常,同步任务快速执行 - 五秒或更短时间。异步任务通常需要更长的时间来执行,并且客户端必须定期询问服务器任务是否已完成,如果已完成,则获取结果。使用异步任务的Web应用程序必须具有实现的逻辑,以检查任务的状态并在执行完成后处理结果。ArcGIS Desktop客户端本机处理两种执行类型。

三、GP服务的调用

GP服务调用同地图服务影像服务那样,也是通过URL进行调用,url在调用时要使用到GPServer之后的Task名称,如:

http://192.168.5.7:6080/arcgis/rest/services/ExplodePolygon12/GPServer/ExplodePolygon

GP服务在调用时要输入参数,他的值必须是html或JSON格式。

例:

var boudingGraphic = new Graphic();
boudingGraphic.geometry = boundingGeom;

var boudingFeature = new FeatureSet();
boudingFeature.features = [boudingGraphic];

var queryFeatures = new FeatureSet();
queryFeatures.features = features;

var bufferDist = selectSite.bufferDistance[layerIndex];

var gpUrl = selectSite.dataConfig.GeoprocessingService.SelectSite_Buffer;
var gp = new Geoprocessor(gpUrl);

var linearUnit = new LinearUnit({
       "distance": bufferDist,
       "units": "meters"
});

var gpParams = {
       "BoudingFeature": boudingFeature,
       "QueryFeatures": queryFeatures,
       "BufferDistance": linearUnit
}

var selectSitePromiseArr = [];
selectSitePromiseArr.push(gp.execute(gpParams));
All(selectSitePromiseArr).then(function (diffResults) {
      console.log(diffResults);
})

这样就可以在arcgis api for js中使用GP服务了。

四、GP服务的制作与发布

1、创建模型构建器

点击下图图标

打开之后创建模型。可打开ArcToolbox,将需要的工具拖入模型构建器后,调整各参数,从而制作模型(模型构建器是使用arcpy代码生成的)

保存模型工具后,使用测试文件执行模型工具。在地图处理里选择结果,找到当前成果的工具,右击进行共享,发布服务。

注意:在发布参数中选择同步还是异步执行,input和output各类参数都是在模型构建器中调整好的,未展示而已。

由此,GP服务就发布好了,可以使用啦。

注:

GP服务的使用属于后台,因此尽管在发布服务时选择了同步或者异步,但是在arcgis api for js调用时,他仍旧需要时间,从而先执行其他代码。

解决这个问题可以调用dojo的All方法:

dojo / promise / all是一个函数,它接受多个promise并返回一个新的promise,当所有promises都已完成时,它将被履行。意思是说当后台都执行完之后再继续执行All函数中中的代码,上面调用时的例子就是这种用法。具体关于js promise()的方法我会之后单独写一篇文章来进行讲解。

原文地址:https://www.cnblogs.com/tangguobo/p/10907675.html

时间: 2024-10-13 02:07:21

arcgis服务之GP服务的几点问题(附GP服务发布步骤)的相关文章

ArcGIS Server 10.2 实战(四)格栅动态配色服务

当你的地理处理服务输出的是格栅,那个不可避免地需要为格栅的各类型数据添加不同色彩进行区分,而默认时格栅的色彩是随机的,或者固定死一套着色方案是也显得不够人性化,难以满足多样的客户需求,下面谈谈如何解决这一格栅动态配色的问题. 首先需要做的是,为你所需要的格栅配色方案都arcmap上实现一遍, 然后右键格栅,选择属性,符号系统标签,色彩映射表 单击左下方的色彩映射表的小三角,选择导出色彩映射表,命名为*.clr. 做好一套色彩映射表后,就可以创建动态配色的模型了. 使用数据管理工具>格栅>格栅属

服务的扩展性(如何创建具有可扩展性的服务实例,缓存以及数据库)

转自:http://www.cnblogs.com/loveis715/p/5097475.html 在编写一个应用时,我们常常考虑的是该应用应该如何实现特定的业务逻辑.但是在逐渐发展出越来越多的用户后,这些应用常常会暴露出一系列问题,如不容易增大容量,容错性差等等.这常常会导致这些应用在市场的拓展过程中无法快速地响应用户的需求,并最终失去商业上的先机. 通常情况下,我们将应用所具有的用来避免这一系列问题的特征称为非功能性需求.相信您已经能够从字面意义上理解这个名词了:功能性需求用来提供对业务逻

推送类服务大集合,如果你想开发推送的服务,可以参考下。

推送类的服务,开发者如果想开发推送类的,但又不知道如何选择,不知道哪个推送类的对自己的开发是否有利.devstore为你整合,汇集了上百种的第三方服务,这里为你分享一些推送类的服务.http://www.devstore.cn/service/serviceClassfiy/24.html推送类服务大集合,如果你想开发推送的服务,可以参考下.,布布扣,bubuko.com

linux服务安装与配置(二):安装xinetd服务

linux服务安装与配置(二):安装xinetd服务 xinetd即extended internet daemon,xinetd是新一代的网络守护进程服务程序,又叫超级Internet服务器.经常用来管理多种轻量级Internet服务.telnet服务就是通过xinetd服务来管理的,所以在安装后面telnet服务之前需要先安装xinetd服务. 首先查看是否有安装xinet服务: # rpm -qa | grep xinetd # 没有则使用光盘中rpm包来安装,步骤如下: # mkdir

微服务之SpringCloud实战(二):SpringCloud Eureka服务治理

服务治理 SpringCloud Eureka是SpringCloud Netflix微服务套件的一部分,它基于Netflix Eureka做了二次封装,主要完成微服务的服务治理功能,SpringCloud通过为Eureka增加了SpringBoot自动化配置,只需要简单的依赖和配置就可完成Eureka整合搭建.   服务治理可以说是微服务中做核心的模块,主要负责服务的自动化注册与发现,在最初开始构建微服务的时候,可能服务并不会很多,我们可以通过一些静态配置进行相互调用,但是随着业务的更新迭代,

docker微服务部署之:六、Rancher管理部署微服务

docker微服务部署之:五.利用DockerMaven插件自动构建镜像 一. 什么是Rancher Rancher是一个开源的企业级容器管理平台.通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台.Rancher提供了生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台. Rancher官网:https://rancher.com 二.Docker中下载Rancher镜像并运行 #Rancher镜像下载 $ sudo docker pul

[转帖]微服务框架Spring Cloud介绍 Part2: Spring Cloud与微服务

微服务框架Spring Cloud介绍 Part2: Spring Cloud与微服务 http://skaka.me/blog/2016/08/03/springcloud2/ AUG 3RD, 2016 10:09 PM | COMMENTS 之前介绍过微服务的概念与Finagle框架, 这个系列介绍Spring Cloud. Spring Cloud还是一个相对较新的框架, 今年(2016)才推出1.0的release版本. 虽然Spring Cloud时间最短, 但是相比我之前用过的Du

《ArcGIS Runtime SDK for Android开发笔记》——数据制作篇:发布具有同步能力的FeatureService服务

1.前言 从ArcGIS 10.2.1开始推出离在线一体化技术之后,数据的离在线一体化编辑一直是大家所关注的一个热点.数据存储在企业级地理数据库中,通过ArcGIS桌面软件加载后配图处理,并发布到ArcGIS for Server中,供移动端设备离线编辑使用,并可以同步回传版本化存档.这其中涉及多项配置操作,本篇文章主要针对FeatureService服务的发布流程做一个简单的介绍.以备查阅. 转载请注明出处:http://www.cnblogs.com/gis-luq/p/5857188.ht

ArcGIS Server开发教程系列(2)配置ARCMAP和ARCCatalog发布服务

1.       Arc catalog的配置 打开catalog,如图新增刚刚创建的server 1. Use GIS services: 用户身份连接 使用此种连接,可以浏览.使用站点内发布的所有服务.但是,不能编辑服务器属性.发布服务.编辑服务属性或者添加.删除.启动.停止或暂停服务. 2. Pulish GIS services: 发布身份连接 使用此种连接,可以发布GIS服务,也可以配置和发布草案服务,但是不能编辑站点的任何属性. 3. Administrator GIS servic