GP는 ArcGIS은 서비스뿐만 아니라 프런트 엔드 호 (JS 4.12 용의 ArcGIS API)를 풀어

머리말

얼마 전 인턴 중, 공간 보간 분석을 수행하기 위해 필요한 지리적 데이터의 일부에 대한 요구를 수신 두 용액 같았다 번 직접, 다른 (예 Kriging.js 등) 프런트 엔드 데이터베이스를 계산하기 위해 어떤 공간 보간을 호출하는 것 하나는 ArcGIS와 GP 서비스를 출시 한 후 JS에는 ArcGIS API를 호출합니다. 많은 양의 데이터를 계산할 수 있기 때문에, GP 서비스로서 최종 결정은 달성했다. 일부 단계 달성하고, 문제가 구덩이를 발생했습니다를 요약합니다.

게시 GP 서비스

  • 첫 번째 그림과 같이 모델에는 ArcGIS 모델 빌더 년에 설립, 그것은 직접 통화 크리깅 도구입니다. 다른 매개 변수했다 : 환경에 의한 추출을 마스크로 층을 마스크 상기 분석 범위는 환경으로부터 획득되는 확장; Zvalue 보간 필드는 파라미터로부터 얻어진다 입력 층에 입력 파라미터로부터 획득. P는 선택 사항입니다, 모델 매개 변수의 설정 표기 됨.
    완료되면 저장을 클릭하고 모델을 확인합니다.

서비스 모델링

  • 저장 모델 파일을 클릭하여 관련 입력 매개 변수를 열고 실행합니다. 서비스가 먼저 실행해야하기 때문에 GP 게시합니다.

모델을 실행

  • 결과를 실행 한 후,도에 도시된다. 주 : GP 분류 서비스는 ArcGIS 동일한 색상 층의 전면 디스플레이를 호출 한 후에는 동일하다. 나는 특정 분류를 표시하고 싶은 색상을 직접 수정 층의 마지막 실행의 결과를 속성 수 있습니다.
    그런 다음, 지오 프로세싱을 열려면 클릭 -> 결과 창에서 마우스 오른쪽 단지 서비스에 게시를 클릭합니다, 현재 세션에서 모델을 실행합니다. 는 ArcGIS와 같은 데이터 서비스를 출판의 다음 단계.

결과

  • 편집 서비스를 제공합니다. 먼저 당신은 프롬프트에 대한 정보를 편집 할 수 있습니다, 분석, 오류없이 출시 된 이후. 참고 : 모드를 실행하려면 선거의 프론트 엔드에 레이어에 결과를 표시 할 수 있습니다 "결과지도 서비스를보고".

편집 서비스

  • 는 ArcGIS Server의보기 및 테스트 서비스를 제공합니다.

보기 서비스

GP 서비스를 호출

자바 스크립트 4.12 통화 GP 서비스는 ArcGIS API는 직접 코드를 넣어

        function doJob() {
            require([
                "esri/Map", "esri/views/MapView", "esri/layers/MapImageLayer", "esri/layers/FeatureLayer",
                "esri/layers/CSVLayer", "esri/tasks/Geoprocessor", "esri/widgets/Legend", "esri/request"
            ], function (Map, MapView, MapImageLayer, FeatureLayer, CSVLayer, Geoprocessor, Legend, request) {

                // 数据
                testLayer = new FeatureLayer({
                    url: "https://localhost:6443/arcgis/rest/services/test/data/MapServer/0"
                })

                // 边界掩膜数据
                maskLayer = new FeatureLayer({
                    url: 'https://localhost:6443/arcgis/rest/services/test/KrigingTestData/MapServer/2',
                    tranparent: 0.7
                })
                var KrigingGP = new Geoprocessor('https://localhost:6443/arcgis/rest/services/gp/Kriging/GPServer/Kriging')  //实例化和调用克里金插值服务
                // console.log('计算插值')

                pattern = $('#patterns option:selected').val()
                crop = $('#crops option:selected').val()
                el = $('#NP option:selected').val()


                var query = testLayer.createQuery()                  //要素服务中查询数据
                query.where = "crop = '"+ crop +"' AND pattern = '"+pattern +"'"
                testLayer.queryFeatures(query).then( re => {
                    console.log(JSON.stringify(re))
                    if (re.features.length == 0) {
                        alert('当前指标下无数据,请重新选取')
                    } else {
                        let params = {
                            Zvalue: el,
                            Input: re,
                            Extent: maskLayer,
                            Mask: maskLayer
                        }
                        KrigingGP.submitJob(params).then( result => {
                            if (result.jobStatus == 'job-failed') {
                                alert('计算插值失败')
                                // console.log(result)
                            } else if (result.jobStatus == 'job-succeeded') {
                                console.log('计算成功')
                                // console.log(result)
                                let resultLayer = KrigingGP.getResultMapImageLayer(result.jobId)   // 获取插值计算结果图层
                                // console.log(resultLayer)
                                resultLayer.opacity = 0.9
                                resultLayer.title = '插值结果'
                                map.layers.pop()
                                map.layers.add(resultLayer)      //结果图层添加到地图上显示
                            }
                        })
                    }
                })
            })
            }

추천

출처www.cnblogs.com/rendan/p/11574508.html