实现DEM提取等高线然后裁剪再在网页显示。
首先,建立适当的Model,将Toolboxd的工具拖入model中选择合适的变量,如图
发布好GP服务和地图服务。
点击后实现了提取等高线后裁剪的功能。
附上源代码
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!--The viewport meta tag is used to improve the presentation and behavior of the samples
on iOS devices-->
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no" />
<title>GP Task Clip and Countour DEM </title>
<link rel="stylesheet" href="http://js.arcgis.com/3.14/dijit/themes/claro/claro.css">
<link rel="stylesheet" href="http://js.arcgis.com/3.14/esri/css/esri.css">
<script src="http://js.arcgis.com/3.14/"></script>
<script>
dojo.require("dijit.layout.BorderContainer");
dojo.require("dijit.layout.ContentPane");
dojo.require("dijit.form.Button");
dojo.require("esri.map");
dojo.require("esri.Color");
dojo.require("esri.graphic");
dojo.require("esri/graphicsUtils");
dojo.require("esri/tasks/Geoprocessor");
dojo.require("esri/tasks/FeatureSet");
dojo.require("esri/tasks/RasterData");
dojo.require("esri/tasks/JobInfo");
dojo.require("esri/symbols/SimpleMarkerSymbol");
dojo.require("esri/symbols/SimpleLineSymbol");
dojo.require("esri/symbols/SimpleFillSymbol");
var map, gp, dynamic;
function init() {
//DEM底图
var mapurl = "http://localhost:6080/arcgis/rest/services/GPTest/DEM/MapServer";
map = new esri.Map("map");
dynamic = new esri.layers.ArcGISDynamicMapServiceLayer(mapurl);
map.addLayer(dynamic);
//创建GP服务
var gpurl = "http://localhost:6080/arcgis/rest/services/GPTest/ClipAndC/GPServer/MyGP";
gp = new esri.tasks.Geoprocessor(gpurl);
gp.outSpatialReference = map.spatialReference;
//注册map的点击事件,
dojo.connect(map, "onClick", DoClip);
}
dojo.ready(init);
function DoClip(evt) {
//建立一个面的Json,以便能够被调用
var jsonpolygon = {
"displayFieldName": "Id",
"fieldAliases": {
"Id": "Id"
},
"geometryType": "esriGeometryPolygon",
"spatialReference": {
"wkid": 4326,
"latestWkid": 4326
},
"fields": [
{
"name": "Id",
"type": "esriFieldTypeInteger",
"alias": "Id"
}
],
"features": [
{
"attributes": {
"Id": 0
},
"geometry": {
"rings": [
[
[
103.14862060546875,
29.4666748046875
],
[
103.119384765625,
29.45654296875
],
[
103.08770751953125,
29.46160888671875
],
[
103.0711669921875,
29.49700927734375
],
[
103.125732421875,
29.55291748046875
],
[
103.25640869140625,
29.52252197265625
],
[
103.14862060546875,
29.4666748046875
]
]
]
}
}
]
}
var featureSetpolygon = new esri.tasks.FeatureSet(jsonpolygon);
//开始调用GP服务
var params = {
"Clip_Features": featureSetpolygon
}
//异步调用,同步调用用excute
gp.submitJob(params,addResults);
}
//加载结果
function addResults(jobinfo) {
var mapurlll = "http://localhost:6080/arcgis/rest/services/GPTest/ClipAndC/MapServer/jobs" + "/" + jobinfo.jobId;
hotspotLayer = new esri.layers.ArcGISDynamicMapServiceLayer(mapurlll
);
map.addLayer(hotspotLayer);
}
</script>
</head>
<body class="claro">
<div data-dojo-type="dijit.layout.BorderContainer" data-dojo-props="design,'headline',gutters:false">
<div id="map" data-dojo-type="dijit.layout.ContentPane" data-dojo-props="region:'center'">
</div>
</div>
</body>
</html>