ArcGIS Model Builder 变量参数 SHP文件传参数

在GP的使用过程中,受限制与GP模型的输入输出参数类型,只能是简单的数据类型才能做为参数。本文通过在服务器端进行SHP文件叠加处理来说明如何进行变量参数的传递

1、GP模型创建,GP功能为两个SHP文件进行交集取反,模型如下

ArcGIS Model Builder 变量参数 SHP文件传参数_第1张图片

上图中 InputNMG、jobid/、inputPro 作为变量,在Model Builder中可以使用创建变量工具进行创建,类型为字符串,如下所示,值为 SHP文件路径

ArcGIS Model Builder 变量参数 SHP文件传参数_第2张图片

变量已经创建完成,如何使用ToolBox使用这些变量值呢,如下图所示,可以使用%变量值%这样使用变量

ArcGIS Model Builder 变量参数 SHP文件传参数_第3张图片

最后输出的结果为临时工作空间目录,使用%ScratchWorkspace%代表临时工作空间路径

ArcGIS Model Builder 变量参数 SHP文件传参数_第4张图片

那么这个脚本已经创建完成,之后成功执行一次之后直接可以发布为ArcGIS Server GP服务模型,然后通过FLExjs、Silverlight API进行调用

附JS调用代码

gp=newGeoprocessor("http://localhost:6080/arcgis/rest/services/SymmetricalDifference/GPServer/SymmetricalDifference");

varparams= {"InputNMG":"路径\\XJ.shp","inputPro":"路径\\ProPy.shp","jobid":"110"};gp.submitJob(params,gpJobComplete,gpJobStatus,gpJobFailed)

functiongpJobComplete(jobinfo) {

//使用结果地图服务进行显示

varmapserviceurl="http://localhost:6080/arcgis/rest/services/SymmetricalDifference/MapServer/jobs";

varmapurl=mapserviceurl+"/"+ jobinfo.jobId;alert(mapurl);varhotspotLayer=newesri.layers.ArcGISDynamicMapServiceLayer(mapurl, {"id":"HotspotLayer","opacity":0.7});console.log(hotspotLayer);map.addLayer(hotspotLayer);}functiongpJobStatus(jobinfo) {alert("gpJobStatus :"+ jobinfo.jobStatus);}functiongpJobFailed(jobinfo) {alert("gpJobFailed :"+ jobinfo);}

你可能感兴趣的:(ArcGIS Model Builder 变量参数 SHP文件传参数)