arcgis js4.15 调用GP服务

    技术2022-07-15  56

    目录

    1.发布GP服务

    2.了解GP服务并测试GP服务成功与否

    3.arcgis js 调用GP服务


    1.发布GP服务

    这个说实话我不太会,不过网上有很多完整的教程

    2.了解GP服务并测试GP服务成功与否

    GP服务的一般格式:

    https://portal.ahslyj.gis/server2d/rest/services/ahlyj/minroute/GPServer

    这个是我GP服务地址,打开的样子如下图所示:

    不过这个不是我们在js中调用的地址,调用的地址要点击进我圈出的部分,那个地址才是我们调用的地址

    点进去后就是GP服务参数的详细信息,翻到最下面点击submit_job输入参数测试

    然后点击post请求后就是在执行了

    上面就是一个基本的查看GP服务和测试GP服务的一个流程

    下面我们开始进入正题,对GP服务进行调试

    3.arcgis js 调用GP服务

    终于到了大家最喜欢的环节,废话不多说,直接上代码,ctrl c / ctrl v

    一个完整的代码可以直接运行的哦,把73,81,95行的改成你自己的就ok了

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="https://js.arcgis.com/4.15/esri/themes/light/main.css"/> <script src="https://js.arcgis.com/4.15/"></script> <title>Title</title> <style> html, body, #mapContent { padding: 0; margin: 0; height: 100%; width: 100%; } #tool{ position: absolute; color: blue; top: 20px; right: 20px; z-index: 999; } </style> </head> <body> <div id="mapContent"></div> <div id="tool"> <button id="test">测试</button> </div> </body> <script> require([ "esri/Map", "esri/views/MapView", "esri/layers/FeatureLayer", "esri/layers/GraphicsLayer", "esri/Graphic", "esri/geometry/Point", "esri/geometry/Polyline", "esri/tasks/GeometryService", "esri/geometry/geometryEngine", 'esri/geometry/support/geodesicUtils', "esri/tasks/Geoprocessor", 'esri/widgets/Sketch/SketchViewModel', "esri/tasks/support/LengthsParameters", 'esri/geometry/support/geodesicUtils', "esri/geometry/support/webMercatorUtils", "dojo/domReady!" ], function (Map, MapView, FeatureLayer, GraphicsLayer,Graphic, Point, Polyline, GeometryService, geometryEngine, geodesicUtils,Geoprocessor, SketchViewModel, LengthsParameters,geodesicUtils,webMercatorUtils ) { var map = new Map({ basemap: "topo" }); var view = new MapView({ container: "mapContent", map: map, center: [117.190322, 31.896501], // center: [-61.125537, 35.863534], zoom: 10, highlightOptions: { color: "red" } }); var gpServer =new Geoprocessor({ //这个地址换成你自己的GPserver 地址 url:"https://portal.ahslyj.gis/server2d/rest/services/ahlyj/minroute/GPServer/minroute", outSpatialReference: { wkid: 102100 } }) //参数 //这里面的参数就是你发布服务的输入参数 //键值对,第一个是参数名称,第二个是参数的值 let params ={ intput:"Connection to db1.sde"+"\\"+"\\SDE.road_dataset"+"\\"+"\\SDE.road", point1:"12601527.432999998,2655731.9277000017", point2:"12602867.285700001,2657795.6818000004" } //编辑 document.getElementById('test').onclick=function() { console.time(); gpServer.submitJob(params).then(function (result) { var jobId = result.jobId; var status = result.jobStatus; if(status === "job-succeeded") { //成功之后,将其中的结果取出来,当然这也是参数名字。 //在模型中,想要取出中间结果,需要设置为模型参数 gpServer.getResultData(jobId, "output").then(function(res){ console.log(res);//返回的数据 console.timeEnd(); }) //上面getResultData方法是获取完成输出的内容,其中第二个参数output是我返回的参数名称,你根据自己更改 } }) } }) </script> </html>

    与君共勉!

     

     

    Processed: 0.009, SQL: 9