ArcGIS API for javascript开发笔记(七)——使用ArcGIS API for javascript调用GP服务

感谢一路走来默默陪伴和支持的你~~~

----------------------欢迎来访,拒绝转载------------------------


初学利用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服务的全部详解内容了,学会检索,具体问题就具体分析了。


------------------欢迎来访,拒绝转载----------------------

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值