天天看點

ArcGIS Desktop GP服務釋出及調用

作者:輪回路上打碟的小年輕

目錄

  • 1 資料類型
  • 2 建立GP模型2.1 ArcMap2.2 ArcGIS Pro
  • 3 釋出GP服務3.1 ArcMap3.2 ArcGIS Pro
  • 4 調用GP服務

1 資料類型

ArcGIS Desktop GP服務釋出及調用

2 建立GP模型

2.1 ArcMap

1)在本地項目檔案夾中建立工具箱

ArcGIS Desktop GP服務釋出及調用

2)在工具箱中建立模型

ArcGIS Desktop GP服務釋出及調用

3)編輯模型,直接将ArcToolbox中相關工具拖拽到其中即可(以克裡金插值進行舉例說明),

實際應用時候需要自定義相關輸入輸出參數

ArcGIS Desktop GP服務釋出及調用

2.2 ArcGIS Pro

3 釋出GP服務

ArcMap将GP釋出到ArcGIS Server上,而ArcGIS Pro須将GP釋出到Portal 10.6及以上版本

3.1 ArcMap

1)啟用GP模型

ArcGIS Desktop GP服務釋出及調用
ArcGIS Desktop GP服務釋出及調用

2)開啟result視窗,并檢視GP模型狀态

ArcGIS Desktop GP服務釋出及調用

3)共享GP服務

ArcGIS Desktop GP服務釋出及調用
ArcGIS Desktop GP服務釋出及調用
ArcGIS Desktop GP服務釋出及調用
ArcGIS Desktop GP服務釋出及調用
ArcGIS Desktop GP服務釋出及調用
ArcGIS Desktop GP服務釋出及調用
ArcGIS Desktop GP服務釋出及調用
ArcGIS Desktop GP服務釋出及調用

4)檢視已釋出服務

ArcGIS Desktop GP服務釋出及調用
ArcGIS Desktop GP服務釋出及調用
ArcGIS Desktop GP服務釋出及調用
ArcGIS Desktop GP服務釋出及調用

5)測試服務

ArcGIS Desktop GP服務釋出及調用
ArcGIS Desktop GP服務釋出及調用
ArcGIS Desktop GP服務釋出及調用

5)輸出栅格或矢量圖層對比

a.栅格圖層

ArcGIS Desktop GP服務釋出及調用
ArcGIS Desktop GP服務釋出及調用

b.矢量圖層

ArcGIS Desktop GP服務釋出及調用
ArcGIS Desktop GP服務釋出及調用
ArcGIS Desktop GP服務釋出及調用

3.2 ArcGIS Pro

1)啟用GP模型

ArcGIS Desktop GP服務釋出及調用
ArcGIS Desktop GP服務釋出及調用

2)釋出GP服務

ArcGIS Desktop GP服務釋出及調用
ArcGIS Desktop GP服務釋出及調用

4 調用GP服務

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta
name="viewport"
content="initial-scale=1,maximum-scale=1,user-scalable=no"
/>
<title>Geoprocessing - GPtest - 4.12</title>
<style>
html,
body,
#viewDiv {
padding: 0;
margin: 0;
height: 100%;
width: 100%;
}
#paneDiv {
position: absolute;
top: 18px;
right: 18px;
padding: 12px;
background-color: rgba(0, 0, 0, 0.5);
color: white;
width: 200px;
}
</style>
<link
rel="stylesheet"
href="https://js.arcgis.com/4.12/esri/themes/light/main.css"
/>
<script src="https://js.arcgis.com/4.12/"></script>
<script>
require([
"esri/Map",
"esri/views/SceneView",
"esri/layers/GraphicsLayer",
"esri/Graphic",
"esri/geometry/Point",
"esri/tasks/Geoprocessor",
"esri/tasks/support/LinearUnit",
"esri/tasks/support/RasterData",
"esri/tasks/support/FeatureSet",
"esri/layers/BaseDynamicLayer"
], function(
Map,
SceneView,
GraphicsLayer,
Graphic,
Point,
Geoprocessor,
LinearUnit,
RasterData,
FeatureSet,
BaseDynamicLayer
) {
// 建構三維場景
var map = new Map({
basemap: "osm",
ground: "world-elevation"
});
var view = new SceneView({
container: "viewDiv",
map: map,
camera: {
// autocasts as new Camera()
position: [104.15, 30.68, 3000],
tilt: 10
}
});
//設定繪圖對象圖層GraphicsLayer
var graphicsLayer = new GraphicsLayer();
map.add(graphicsLayer);

var fillSymbol = {
type: "simple-fill", // autocasts as new SimpleFillSymbol()
color: [226, 119, 40, 0.75],
outline: {
// autocasts as new SimpleLineSymbol()
color: [255, 255, 255],
width: 1
}
};

var gpUrl = "https://localhost:6443/arcgis/rest/services/AQItest/GPServer/AQItest";
var gp = new Geoprocessor(gpUrl);

var MapServiceUrl = "https://localhost:6443/arcgis/rest/services/AQItest/MapServer/jobs"

gp.outSpatialReference = {
// autocasts as new SpatialReference()
wkid: 32648
};
view.on("click", SubmitJob);
//送出GP服務
function SubmitJob(event) {
graphicsLayer.removeAll();
var params = {
ltest_sde_AQIjj: FeatureSet,
XY_表: FeatureSet
};
//同步execute,異步submitJob
gp.submitJob(params).then(showResultData);
}
/*
//擷取GP詳情
function showResultData(result) {
var jobId = result.jobId;
var status = result.jobStatus;
return jobId;
if(status === esri.tasks.JobInfo.STATUS_SUCCEEDED) {
//第二個參數要和發服務的結果集名稱一緻
gp.getResultData(jobId, "ltest_sde_AQIjj", drawResultData);
}
}
*/

/*
//展示矢量影像
function drawResultData(result) {
//加載矢量
var resultFeatures = result.results[0].value.features;
var viewshedGraphics = resultFeatures.map(function(feature) {
feature.symbol = fillSymbol;
return feature;
});
graphicsLayer.addMany(viewshedGraphics);

}
*/
//展示矢量影像
function showResultData(jobinfo, messages) {
var MapUrl = MapServiceUrl + "/" + jobinfo.jobId;
var hotspotLayer = new ArcGISDynamicMapServiceLayer(mapurl, {
"id": "bufferlayer"
});
map.addLayers([hotspotLayer]);

}

});

</script>
</head>
<body>
<div id="viewDiv"></div>
<div id="paneDiv" class="esri-widget">
3D Air Pollution Interplotaion GP Task
</div>
</body>
</html>           

繼續閱讀