转自:http://www.cnblogs.com/gisangela/archive/2011/01/06/1927702.html

1、什么是GP服务

GP服务是Geoprocessing服务的简称,Geoprocessing包含了一系列地理数据处理的功能,像做缓冲区分析、叠加分析、以及对栅格数据制作阴影图等等。在桌面软件中可以通过ArcToolbox中的工具直接调用Geoprocessing的功能,而如果期望通过web来调用GP的功能,就必须借助于GP服务了。Esri的帮助文档中介绍了发布GP服务的两种方式:

l Publish a geoprocessing toolbox. Each tool in the toolbox becomes a task in the geoprocessing service.

l Publish an ArcMap document containing geoprocessing tool layers. Each tool layer becomes a task in the geoprocessing service.

也就是说我们既可以将某个工具单独发布为一个服务,也可以将该工具作为一个工具图层(tool layer)和地图文档一起发布,这样会同时得到同名的一个地图服务和一个GP服务。这里地图服务中的图层可以当做GP任务的数据源,也可以利用工具图层得到的结果来控制最后输出图层的符号。

2、如何发布GP服务——buffer为例

2.1 案例介绍

这里我们使用ArcTutor\Using_ArcGIS_Desktop\MexicoPopulationDensity.mxd【已经安装ArcTutor练习数据】作为地图服务,并且调用GP中的Buffer工具来进行缓冲区的创建。这里我们采用地图文档和工具一起发布的方式,GP服务的输入为通过和地图交互得到的点(即feature set),而直接使用buffer工具的话输入参数只能是要素类或图层,所以需要通过ModelBuilder制作模型来让GP服务正确读取输入参数。

2.2 准备模型

在ArcTutor\GP Service Examples\BufferPoints目录下,会看到已经制作好的示例模型。在这里截图展示:

具体的操作步骤为:

(1)在该文件夹中创建自定义工具箱,右键——new——toolbox,命名为BufferService;

(2)在该工具箱中新建模型,右键——new——Model;

(3)在打开的ModelBuilder界面中,将Analysis工具箱中Buffer工具拖放进去,现在工具还没有输入参数,而根据要求输入是用户跟地图交互时产生的。这就需要我们进行下面的设置;

(4)在Buffer工具上右键菜单中设置变量——从参数——输入要素;

(5)现在一个完整的模型流程已经创建好了,但是还处于不可执行状态。因为我们还未指定输入数据源,这里就需要借助一个空的要素类来作为feature set的模板。这里我们新建一个geodatabase,在其中新建一个point类型的要素类;

(6)在Input Features右键属性的Data Type选项卡中,指定“select data type”的类型为Feature Set,“Import schema and symbology”为上面一步中创建的要素类;

(7)现在模型就会变成彩色的,即可执行状态。为了以后便于修改缓冲区距离这个参数,我们也用第四步中的办法把距离参数提取出来,作为模型的参数。OK,到这一步我们的模型就制作完毕了,下一步我们在ArcMap中测试一下模型;

(8)将MexicoPopulationDensity.mxd打开,把制作好的模型添加进去,模型自动会被识别为工具图层。打开工具,按照提示通过与地图交互的方式获得输入的若干个点,点击OK执行,能够顺利得到点的缓冲区那么测试就通过了。现在取消刚生成结果图层的可见性,保存地图文档,下面一步要做的就是发布服务。

2.3 发布服务

打开ArcCatalog,在该地图文档上弹右键菜单,选择Publish toArcGIS Server,指定名称后点击下一步,如图所示这里除了Mapping service之外还会出现Geoprocessing Service。

3、如何调用GP服务——Flex API

GP服务的执行有两种方式,同步(synchronous)和异步(asynchronous),同步的调用方法为execute,异步的调用方法为submitJob,区别详见帮助。下面一段就是使用Flex API调用GP服务的代码,这里GP服务的名称为BufferPoint,测试环境为Flex Builder 3+ArcGIS Server 9.3。

GP(Geoprocessing)服务的发布与调用的更多相关文章

  1. GIS有关GP服务的发布和调用

    打印服务范例:http://blog.csdn.net/jingxinwjb/article/details/51906464 1.通过Modelbuilder新建工具.(注意:假如工具输出两个以上的 ...

  2. ArcGIS GP服务的发布及调用

    参考https://www.jianshu.com/p/5331fa708fe5

  3. dubbo服务的发布和调用

    Dubbo是分布式服务架构,是一个优秀的开源服务型框架,使得应用可以通过高性能的rpc实现服务的输入和输出功能.其实dubbo就是资源调度和治理中心的管理工具. 发布dubbo服务:在提供服务的应用中 ...

  4. ArcGIS API for Silverlight 调用GP服务准备---GP模型建立、发布、测试

    原文:ArcGIS API for Silverlight 调用GP服务准备---GP模型建立.发布.测试 第一篇.GP降雨量等值线建模.发布及测试 在水利.气象等行业中,要在WebGIS中实现空间分 ...

  5. springboot2.0+dubbo整合分布式服务发布和调用

    最近项目上要对以前的老项目做分布式的整改,因此我专门花了点时间研究下当前比较热门的dubbo和springboot结合使用,以前使用过dubbo,但是没有与springboot结合过,在网上查了点资料 ...

  6. 使用GeoServer+OpenLayers发布和调用WMTS、Vector Tile矢量切片服务 | Publishing and Calling WMTS, Vector Tile Service Using GeoServer + OpenLayers

    Web GIS系列: 1.搭建简易Web GIS网站:使用GeoServer+PostgreSQL+PostGIS+OpenLayers3 2.使用GeoServer+QGIS发布WMTS服务 3.使 ...

  7. SpringCloud之Eureka:服务发布与调用例子

    Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的. SpringCloud将它集成在其子 ...

  8. java版gRPC实战之二:服务发布和调用

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  9. ASP.NET 5系列教程 (四):向视图中添加服务和发布应用到公有云

    向视图中添加服务 现在,ASP.NET MVC 6 支持注入类到视图中,和VC类不同的是,对类是公开的.非嵌套或非抽象并没有限制.在这个例子中,我们创建了一个简单的类,用于统计代办事件.已完成事件和平 ...

随机推荐

  1. 【BZOJ 1084】[SCOI2005]最大子矩阵

    Description 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注意:选出的k个子矩阵不能相互重叠. Input 第一行为n,m,k(1≤n≤100,1≤m≤2 ...

  2. 【BZOJ 2878】 [Noi2012]迷失游乐园

    Description 放假了,小Z觉得呆在家里特别无聊,于是决定一个人去游乐园玩.进入游乐园后,小Z看了看游乐园的地图,发现可以将游乐园抽象成有n个景点.m条道路的无向连通图,且该图中至多有一个环( ...

  3. Oracle创建序列

    CREATE SEQUENCE IF NOT EXISTS seq_fund_execute

  4. linux源码分析2

    linux源码分析 这里使用的linux版本是4.8,x86体系. 这篇是 http://home.ustc.edu.cn/~boj/courses/linux_kernel/1_boot.html  ...

  5. sql之表连接和group by +组函数的分析

    1.首先我们来先看一个简单的例子: 有[Sales.Orders]订单表和[Sales.Customers]顾客表,表的机构如下 业务要求:筛选  来自“按时打算”国家的用户以及所下的订单数 sele ...

  6. NodeJS用递归实现异步操作的链式调用,完成一个简易的命令行输入输出REPL交互接口

    REPL —— Read-Eval-Print-Loop. 00.一门好的编程语言的必要条件 REPL并不是什么高大上的东西,简单的说就是一个从命令行程序,读取终端输入,处理,打印结果,如此循环.这是 ...

  7. 1043: [HAOI2008]下落的圆盘 - BZOJ

    Description有n个圆盘从天而降,后面落下的可以盖住前面的.求最后形成的封闭区域的周长.看下面这副图, 所有的红色线条的总长度即为所求.Input n ri xi y1 ... rn xn y ...

  8. 【链表】bzoj 1150: [CTSC2007]数据备份Backup

    1150: [CTSC2007]数据备份Backup Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1136  Solved: 458[Submit] ...

  9. Samza在YARN上的启动过程 =》 之二 submitApplication

    首先,来看怎么构造一个org.apache.hadoop.yarn.client.api.YarnClient class ClientHelper(conf: Configuration) exte ...

  10. c/c++强制类型转换

    转自c/c++强制类型转换 Q:什么是C风格转换?什么是static_cast, dynamic_cast 以及 reinterpret_cast?区别是什么?为什么要注意? A:转换的含义是通过改变 ...