ArcGIS 10.2以上GP服务调用
来源:互联网 发布:阿里云服务器怎么换ip 编辑:程序博客网 时间:2024/05/20 11:20
GP服务是个非常有用的工具,几乎所有的桌面版的地处理工具都可以发布称GP服务。笔者从自己的一个项目中用到一个简单的GP服务入手,介绍下GP服务的发布和调用过程。
这里以intersect相交为例,在客户端的geometryServices也提供intersect方法,但是这个方法有个致命的缺陷,就是仅针对几何类型,没法获取属性信息,所以我们可以采用地处理的intersect服务。
1.模型构建
在Catolog中,选择Geoprocessing-ModelBuilder,然后选择菜单的Insert,选择Add Data or Tool,在系统工具里找到Intersect工具。如下图:
加进来的效果是这样的,这个时候没有设置任何功能参数,背景色都是白色的。
我们知道,相交是必须要两个要素数据集的,因此我们要加两个参数,作为输入的要素数据集。我们在菜单栏上继续Insert,选择Create Varial,创建参数。我们分别重命名为Intersect1和Intersect2.
然后我们分别在Intersect1和Intersect2上面右击,选择属性,数据类型选择Feature Set,如果数据类型选择不正确,调用服务时会报错。这里一定要注意。
之后我们分别新建两个个shap文件,作为两个要素相交的模板。Import schema and symbology from:选择你刚才新建的模板。这时候这两个参数背景就会变成蓝色。
接下来,我们知道这里的两个要素是作为参数参与GP服务计算的,也就是在程序中是动态给予的,而不是死的,所以我们还需要右击,选择Model Parameter,这样我们会发现,在Intersect1和Intersect2旁边会出现一个P,这个就是动态参数的意思。
然后我们用连接工具将Intersect1和Intersect2连接到Intersect工具上,作为参数,连接后有一个提示,我们选择Input feature.之后我们重命名输出参数为Output,同样,输出参数也是动态参数,我们也要选择Model Parameter,让P显示出来。
然后我们点击Run,来验证模型的正确。如果没有报错,等于模型通过了验证,这个时候我们保存模型。保存好之后,我们在模型上右击选择Debug,来测试模型,两个输入参数我们可以选择事先画好的两个面,并且给予相应属性,测试成功后,我们在Geoprocessing里面的result中右击选择共享到服务。
最后我们在客户端调用服务,这里以flex为例:这里注意输入的参数要保持和模型中参数的名字一样:Intersect1和Intersect2
var params:Object = {"Intersect1":featureSet,"Intersect1":drawFS};//参数
gp.addEventListener(GeoprocessorEvent.JOB_COMPLETE, completeCallback);
gp.addEventListener(FaultEvent.FAULT,onFault);
gp.submitJob(params);
function completeCallback(event: GeoprocessorEvent) : void
{
var result:ArrayCollection = new ArrayCollection();
if (event.jobInfo.jobStatus == JobInfo.STATUS_SUCCEEDED)
{
gp.getResultData(event.jobInfo.jobId,"output",new AsyncResponder(onResult,onFault));
function onResult(pv:ParameterValue, token:Object = null):void
{
pv.value 就是你的结果集featureset
}
- ArcGIS 10.2以上GP服务调用
- ArcGIS 10.2以上GP服务发布流程
- ArcGIS Engine调用GP服务
- ArcGIS GP服务发布和客户端调用
- ArcGIS engine调用GP服务说明
- ArcGIS Engine调用自定义GP服务(一)
- ArcGIS Engine调用自定义GP服务(二)
- ArcGIS Engine调用自定义GP服务(一)
- 使用ArcGIS GP服务
- ArcGIS Server Flex API调用GP服务的一般步骤
- ArcGIS for Android示例解析之GP服务调用-----ViewShed
- 使用ArcGIS GP服务之五 JavaScript的调用
- ArcGIS API for Javascript和GP服务调用
- ArcGIS API for Silverlight 调用GP服务绘制等值面
- arcgis JavaScript调用GP服务自动生成等值面
- 使用ArcGIS GP服务之五 JavaScript的调用
- (八)ArcGIS API For Javascript调用GP服务
- 学习笔记之ArcGIS Engine调用自定义GP服务(二)
- IntelliJ IDEA单元测试+SpringMvc单元测试
- Unity里的坐标转换+动态载入
- MongoDB集群监控
- HRBUST1213 单词接龙
- idea14 添加工具栏,例如后退,前进,idea14后退按钮不显示
- ArcGIS 10.2以上GP服务调用
- 性能优化,进无止境-内存篇(上)
- 游戏API接口本身的意义是什么
- 判断是否打开了软键盘 自动打开软键盘
- 由不同ClassLoader加载的同名类属于不同类
- Android中的Conflict with dependency 'com.google.code.findbugs:jsr305'
- ubuntu下搭建apache+gerrit+h2+git环境
- hive和hbase有什么关系和区别?
- 给元素添加节点