感谢一路走来默默陪伴和支持的你~~~
----------------------欢迎来访,拒绝转载------------------------
初学利用ArcGIS Javascript API调用GP服务的时候,往往需要借鉴一下前人的经验,之前我也一直搜索关于这方面的资料,除了官网的并不系统的demo以外,就是大面积的buffer示例,这让我醉了。下面,我将继续在前几篇ArcGIS API for javascript开发笔记的基础上,详解ArcGIS Javascript API调用GP服务。
一、 rest执行GP服务测试
在上一篇博客中已经介绍了通过Rest API调用GP服务的方法,不再赘述,点我回顾!
测试界面:
Rest测试gp服务结果显示:
-------------------欢迎走进雾语的博客--------------------
二、 ArcGIS API for javascript调用GP服务的代码实现
//执行Excel生成风机点位的代码
gp_ExcelToTurbines = new Geoprocessor("http://192.168.18.102:6080/arcgis/rest/services/GenerateTurbines/GPServer/Generate%20GeoTurbine");
gp_ExcelToTurbines.setOutputSpatialReference({
wkid: 2431
});
//单击开始执行按钮,执行GP服务
on(dom.byId("ExcelToTurbinesButton"),"click", ExcelToTurbines);
var ExcelToTurbinestip;
function ExcelToTurbines(evt) {
ExcelToTurbinestip = document.getElementById("ExcelToTurbinestip");
ExcelToTurbinestip.style.visibility="visible";
ExcelToTurbinestip.innerText="正在执行,请稍后";
console.log("step into ...");
editToolbar.deactivate();
//将文本框中的值作为参数赋值
var InputEXCEL = new DataFile({
"url": dom.byId('InputExcel').value
});
//参数的json传入
var params = {
"Input_Excel_File":InputEXCEL
};
gp_ExcelToTurbines.submitJob(params, ExcelToTurbinesJobComplete,ExcelToTurbinesstatus);
}
function ExcelToTurbinesJobComplete(jobinfo) {
gp_ExcelToTurbines.getResultImageLayer(jobinfo.jobId, null, null, function (layer) {
layer.setOpacity(1);
layer.setInfoTemplates({0:{infoTemplate:infoTemplateFJ}});
map.addLayers([layer]);
console.log(jobinfo.jobId);
console.log(layer);
});
}
function ExcelToTurbinesstatus(){
ExcelToTurbinestip.innerText="执行成功";
ExcelToTurbinestip.style.visibility="hidden";
}
浏览器运行展示:
------------------欢迎走进雾语的博客---------------------
三、 注意事项
1. 注意GP服务参数的类型与javascript中参数类型的对应关系,如示例中的Input_Excel_File的参数类型为GPDataFile,那么在javascript中所对应的参数就应该是DataFile,我们在构建这些参数的时候,就需要引进这个DataFile模块。
var InputEXCEL = new DataFile({
"url": dom.byId('InputExcel').value
});
2. Json格式的param中的键值一定与parameters中的parameter名称一致,如:
var params = {
"Input_Excel_File":InputEXCEL
};
其中
Input_Excel_File名称必须与parameter中的值一致,不能随意指定。
----------------------这是一条华丽丽的分割线----------------------
四、 代码调试
1.在重要的代码行上添加断点,和重要参数的监视。
2.执行,查看参数的变化,检查返回的参数的正确性。
3. 如:查看inputExcel监视参数的正确性。
4. 继续执行,查看param对象的信息,确认无误后继续执行。
5. 继续执行,查看jobinfo信息,这里记录了GP执行的状态,若GP执行失败,会有详细的失败的信息。
6. 查看GP结果生成的layer的详细信息,并可以注意到jobid的编号,实际上GP生成的结果会默认的保存到jobid编号所在的文件里,您可以找到gp服务结果的存储文件,找到对应的jobid进行确认查看。
以上就是ArcGIS Javascript API调用GP服务的全部详解内容了,学会检索,具体问题就具体分析了。
------------------欢迎来访,拒绝转载----------------------