arcgis js4.15 调用GP服务

目录

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>

与君共勉!

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章