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

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

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


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


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


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

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

附JS调用代码

gp = new Geoprocessor("http://localhost:6080/arcgis/rest/services/SymmetricalDifference/GPServer/SymmetricalDifference");
var params = { "InputNMG": "路径\\XJ.shp", "inputPro": "路径\\ProPy.shp","jobid":"110" };

gp.submitJob(params, gpJobComplete, gpJobStatus, gpJobFailed)
function gpJobComplete(jobinfo) {
//使用结果地图服务进行显示
 
 
var mapserviceurl = "http://localhost:6080/arcgis/rest/services/SymmetricalDifference/MapServer/jobs";
var mapurl = mapserviceurl + "/" + jobinfo.jobId; alert( mapurl); var hotspotLayer = new esri. layers. ArcGISDynamicMapServiceLayer( mapurl, { "id": "HotspotLayer", "opacity": 0.7 }); console. log( hotspotLayer); map. addLayer( hotspotLayer);} function gpJobStatus(jobinfo) { alert( "gpJobStatus :" + jobinfo.jobStatus);} function gpJobFailed(jobinfo) { alert( "gpJobFailed :" + jobinfo);}








猜你喜欢

转载自blog.csdn.net/qingyimengwu/article/details/42979593