曾经觉得这个参数好难写,因为是一个映射关系,哪知道不存在的。就是一个字符串,怎么分类写在字符串里面,就完事了。关键代码如下:
<script>
require([
"dijit/layout/BorderContainer",
"dijit/layout/ContentPane",
"dijit/layout/AccordionContainer",
"esri/Map",
"esri/views/MapView",
"esri/widgets/Search",
"esri/views/ui/DefaultUI",
"esri/layers/MapImageLayer",
"esri/layers/FeatureLayer",
"esri/tasks/Geoprocessor",
"esri/widgets/BasemapToggle",
"esri/widgets/BasemapGallery"
], function(BorderContainer,ContentPane,AccordionContainer,Map,MapView,Search,DefaultUI,MapImageLayer,FeatureLayer,Geoprocessor,BasemapToggle, BasemapGallery) {
var map = new Map({
basemap: "topo-vector"
});
var view = new MapView({
container: "mapview",
map: map,
center: [106.51,26.41],
zoom: 12
});
//beijing:116.387, 39.909
//贵安:[106.51,26.41]
//sample:-118.80543,34.02700
////////////////////////////////////////////////////////////////////////
//先添加MapImageLayer 做地理处理服务的实验
var imagelayer = new MapImageLayer({url: "http://localhost:6080/arcgis/rest/services/GAND208/MapServer"});
map.add(imagelayer);
//以下是地理处理代码段
// initialize geoprocessor task 初始化地理处理任务
var gpUrlOrigin ="https://sampleserver6.arcgisonline.com/arcgis/rest/services/911CallsHotspot/GPServer/911%20Calls%20Hotspot";
//var gpUrl="http://localhost:6080/arcgis/rest/services/LandUseAccess/GPServer";
//="http://localhost:6080/arcgis/rest/services/LandAccess1016Use/GPServer";
// var gpUrl="http://localhost:6080/arcgis/rest/services/LandAccess1016Use/GPServer/LandAccess1016UseName"
var gpUrl="http://localhost:6080/arcgis/rest/services/UseReclass/GPServer/UseReclass"
var gp = new Geoprocessor({
url: gpUrl,
outSpatialReference: {
wkid: 3857
}
});
//gp.submitJob().then();
var params = {
ReclassMap:"1029.212890625 1221.2645325903673 1;1221.2645325903673 1293.8694216260549 2;1293.8694216260549 1333.6850059359481 3;1333.6850059359481 1626.4466552734 4"
};//Key Code Key Code Key Code important things say three times!
gp.submitJob(params);
//以上代码是用参数调用重分类服务。怎么分都写在那个上面的大字符串里。
//以下是提交job提交等的代码
// geoprocessor.submitJob(params).then(function(jobInfo) {
//var jobid = jobInfo.jobId;
// var options = {interval: 1500,
// statusCallback: function(j) {console.log("Job Status: ", j.jobStatus);}
// };
// geoprocessor.waitForJobCompletion(jobid, options).then(function() {
// var resultlayer = geoprocessor.getResultMapImageLayer(jobid);
// map.add(resultlayer);
// });
//以上是地理处理代码段
//***添加搜索微件和底图切换微件***//
var searchWidget = new Search({ view: view });
var bmToggleWidget = new BasemapToggle({
view: view,
nextBasemap: "hybrid"
});
view.ui.add(searchWidget, "bottom-left");
view.ui.add(bmToggleWidget, "bottom-right");
//*** Add div element to show coordates:在视图区的右下角显示坐标 ***//
var coordsWidget = document.createElement("div");
coordsWidget.id = "coordsWidget";
coordsWidget.className = "esri-widget esri-component";
coordsWidget.style.padding = "7px 15px 5px";
view.ui.add(coordsWidget, "bottom-right");
view.ui._removeComponents(["attribution"]);// 去掉power by esri
//*** Update lat, lon, zoom and scale ***//
function showCoordinates(pt) {
var coords = "Lat/Lon " + pt.latitude.toFixed(3) + " " + pt.longitude.toFixed(3) +
" | Scale 1:" + Math.round(view.scale * 1) / 1 +
" | Zoom " + view.zoom;
coordsWidget.innerHTML = coords;
}
//*** Add event and show center coordinates after the view is finished moving e.g. zoom, pan ***//
view.watch(["stationary"], function() {
showCoordinates(view.center);
});
//*** Add event to show mouse coordinates on click and move ***//
view.on(["pointer-down","pointer-move"], function(evt) {
showCoordinates(view.toMap({ x: evt.x, y: evt.y }));
});
///////////////////////////////////////////////////////////////////////
});
////////////////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////////////////
</script>
本文介绍了一种使用ArcGIS API实现地图重分类服务的方法。通过具体示例展示了如何设置地图基本参数、添加图层及调用地理处理服务,并通过字符串形式的参数进行重分类操作。
40

被折叠的 条评论
为什么被折叠?



