arcgis api for js如何调用GP服务?

我用的是arcgis api for js是4.3的,我看网上的很多调用GP服务的例子都是以前3.几的代码,希望能有高手给点示例代码。
已邀请:

GIS晴天 - webgis爱好者

赞同来自:

arcgis api4.3有个GP服务的例子,是关于可视域查询的,你可以看一下
https://developers.arcgis.com/javascript/latest/sample-code/geoprocessing-viewshed/index.html 希望能帮到你!

java2596098860 - 改不完的BUG

赞同来自:


function createKLJ4SoilMetal(ctx,featureLayer,divCode,array,colArray,windowId,resultLabelId) {

var waitModalWindow = $('#'+windowId);
waitModalWindow.html(getWaitDialogHtml('klj'));//data
waitModalWindow.modal({show:true,backdrop:'static'}).on("hidden", function(){
$(this).remove();
});

setTimeout(function() {

if(divCode == '450000' && array.length < 100) {
array = array.concat(emptyPointArray);
} else if(divCode.length == 6 && divCode.charAt(4) == '0' && divCode.charAt(5) == '0') {

} else if(divCode.length == 6 && (divCode.charAt(4) != '0' || divCode.charAt(5) != '0')) {

}

//把点位信息插入到数组中
var inputFeatures = [];
for (var i = 0; i < array.length; i++) {
var pt = array[i];
var g = pointGraphic(pt[colArray[0]], pt[colArray[1]], pt[colArray[2]]);
inputFeatures.push(g);

}

var findTask = new esri.tasks.FindTask(bouderUrl);
var findParams = new esri.tasks.FindParameters();
findParams.returnGeometry = true;
findParams.layerIds = [0,1,2];

var precision = 0.01;
var gpServiceUrl1 = "";
var mapServiceUrl1 = "";
if(divCode == '450000') {
precision = 0.02;
findParams.searchFields = ["上级编码"];
} else if(divCode.length == 6 && divCode.charAt(4) == '0' && divCode.charAt(5) == '0') {
precision = 0.008;
findParams.searchFields = ["地市编码"];
} else if(divCode.length == 6 && (divCode.charAt(4) != '0' || divCode.charAt(5) != '0')) {
precision = 0.005;
findParams.searchFields = ["区县编码"];
} else {
findParams.searchFields = ["乡镇编号"];
}

gpServiceUrl1 = gpKrigingServiceUrl_soilmetal;
mapServiceUrl1 = mapKrigingServiceUrl_soilmetal;
findParams.searchText = divCode;

findTask.execute(findParams, function(queryResult){
var clipFeatures = [];
if (queryResult.length == 0) {
alert("未查询到要素!");
return;
}
for (var i = 0; i < queryResult.length; i++) {
var graphic = queryResult[i].feature;
clipFeatures.push(graphic);
}

var gp = new esri.tasks.Geoprocessor(gpServiceUrl1);
var clipFeatureSet = new esri.tasks.FeatureSet();
clipFeatureSet.features = clipFeatures;

var inputFeaturesSet = new esri.tasks.FeatureSet();
inputFeaturesSet.features = inputFeatures;

var params = {
要素图层: clipFeatureSet,
输入点要素: inputFeaturesSet,
Z_值字段 : "Z",
输出像元大小__2_:precision,
UsePolygon : true
};

var krigingLayer = map.getLayer('KrigingLayer');
if (krigingLayer) {
map.removeLayer(krigingLayer);
}

gp.submitJob(params,
function(result) {
var jobId = result.jobId;
var status = result.jobStatus;

if (status === esri.tasks.JobInfo.STATUS_SUCCEEDED) {
var url = mapServiceUrl1 + "/jobs/" + jobId;
var krigingLayer = new esri.layers.ArcGISDynamicMapServiceLayer(url, {
"id": "KrigingLayer"
});
map.addLayer(krigingLayer);

// legend4Metal.refresh([{layer:krigingLayer, title:'图例'}]);

// require([
// "esri.Map", "esri/dijit/Legend", ...
// ], function(Map, Legend, ... ) {
// var map = new Map( ... );
// var legend = new Legend({
// map: map
// }, "legendDiv");
// legend.startup();
// ...
// });

for (var i = 0; i < featureLayer.graphics.length; i++) {
var backgroundSymbol = new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_SOLID,new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new esri.Color([0,0,0]), 0.3),new esri.Color([255,255,255,0]));
featureLayer.graphics[i].symbol = backgroundSymbol;
}
featureLayer.redraw();

waitModalWindow.find("#"+resultLabelId).html("");
waitModalWindow.find("#closeButton").trigger("click");
}
},
function(jobinfo) {
var jobstatus = '';
switch (jobinfo.jobStatus) {
case 'esriJobSubmitted':
jobstatus = '提交中...';
break;
case 'esriJobExecuting':
jobstatus = '执行中...';
break;
case 'esriJobFailed':
jobstatus = '执行失败';
break;
case 'esriJobSucceeded':
break;
}
waitModalWindow.find("#"+resultLabelId).html(jobstatus);
document.getElementById(resultLabelId).innerHTML = jobstatus;
},
function(error) {
waitModalWindow.find("#"+resultLabelId).html(error);
document.getElementById(resultLabelId).innerHTML = error;
}
);
});
},500);
}


要回复问题请先登录注册