在前面我们大多数的程序是对矢量数据的操作,在这篇博客中,主要介绍影响服务的操作。在影像服务的操作中主要用到的类有:
- esri/tasks/ImageServiceIdentifyTask用于对影像数据的查询,它主要对应的参数为esri/tasks/ImageServiceIdentifyParameters,查询返回的结果用esri/tasks/ImageServiceIdentifyResult接受
- 对影像数据的测量主要用到的类为esri/tasks/ImageServiceMeasureTask,它所对应的的参数为esri/tasks/ImageServiceMeasureParameters
ArcGIS API影像测量
代码实现
首先加载地图@H_404_17@
1@H_404_17@2@H_404_17@3@H_404_17@4@H_404_17@5@H_404_17@6@H_404_17@ | require(["esri/map","esri/layers/ArcGISImageServiceLayer","dojo/domready!"],function(Map,ArcGISImageServiceLayer){@H_404_17@ var map=new Map("mapDiv")@H_404_17@ //注意这里是影响服务@H_404_17@ var layer=new ArcGISImageServiceLayer("http://localhost:6080/arcgis/rest/services/Test/Dem/ImageServer")@H_404_17@ map.addLayer(layer);@H_404_17@ });@H_404_17@ |
添加两个按钮,一个用于绘制折线,一个用于测量分析@H_404_17@
1@H_404_17@2@H_404_17@ | <button id="drawp">绘制点</button>@H_404_17@<button id="btn">查询</button>@H_404_17@ |
创建必要对象@H_404_17@
1@H_404_17@2@H_404_17@3@H_404_17@4@H_404_17@5@H_404_17@6@H_404_17@7@H_404_17@8@H_404_17@9@H_404_17@10@H_404_17@ | //用于绘制点@H_404_17@ var toolbar =new Draw(map);@H_404_17@ @H_404_17@ //创建影像分析对象@H_404_17@ var task=new ImageServiceIdentifyTask("http://192.168.0.112:6080/arcgis/rest/services/Test/Dem1/ImageServer");@H_404_17@ //创建影像分析参数对象@H_404_17@ var params=new ImageServiceIdentifyParameters();@H_404_17@ var linesymbol = new SimpleLinesymbol(SimpleLinesymbol.STYLE_DASH, new dojo.Color([255, 0, 0]), 3);@H_404_17@ var marker= new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CIRCLE,10, linesymbol, new dojo.Color([255, 0, 0]));@H_404_17@ var fill= new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, linesymbol, new dojo.Color([255, 0, 0]));@H_404_17@ |
1@H_404_17@2@H_404_17@3@H_404_17@4@H_404_17@5@H_404_17@6@H_404_17@7@H_404_17@8@H_404_17@9@H_404_17@10@H_404_17@11@H_404_17@12@H_404_17@13@H_404_17@14@H_404_17@ | //给绘制点按钮绑定事件@H_404_17@ on(dom.byId("drawp"),"click",function(){@H_404_17@ toolbar.activate(Draw.polyLINE, {@H_404_17@ showTooltips:true@H_404_17@ })@H_404_17@ })@H_404_17@ //给draw工具的绘制完成事件绑定函数@H_404_17@ on(toolbar,"draw-complete", function (result) {@H_404_17@ var geometry=result.geometry;@H_404_17@ //给参数对象的几何属性赋值@H_404_17@ params.geometry=geometry;@H_404_17@ toolbar.deactivate();@H_404_17@ @H_404_17@ })@H_404_17@ |
给分析按钮绑定事件@H_404_17@
1@H_404_17@2@H_404_17@3@H_404_17@4@H_404_17@5@H_404_17@6@H_404_17@7@H_404_17@8@H_404_17@9@H_404_17@10@H_404_17@11@H_404_17@12@H_404_17@13@H_404_17@ | on(dom.byId("btn"),"click",function(){@H_404_17@ //设置掩膜规则@H_404_17@ var mosaicrule=new Mosaicrule();@H_404_17@ mosaicrule.ascending=false;@H_404_17@ mosaicrule.method=Mosaicrule.METHOD_CENTER@H_404_17@ params.mosaicrule=mosaicrule@H_404_17@ params.pixelSizeX=layer.pixelSizeX;@H_404_17@ params.pixelSizeY=layer.pixelSizeY;@H_404_17@ task.execute(params,function(result){@H_404_17@ //弹出改点的高程值@H_404_17@ alert(result.value)@H_404_17@ })@H_404_17@ })@H_404_17@ |
代码结果
全部代码
1@H_404_17@2@H_404_17@3@H_404_17@4@H_404_17@5@H_404_17@6@H_404_17@7@H_404_17@8@H_404_17@9@H_404_17@10@H_404_17@11@H_404_17@12@H_404_17@13@H_404_17@14@H_404_17@15@H_404_17@16@H_404_17@17@H_404_17@18@H_404_17@19@H_404_17@20@H_404_17@21@H_404_17@22@H_404_17@23@H_404_17@24@H_404_17@25@H_404_17@26@H_404_17@27@H_404_17@28@H_404_17@29@H_404_17@30@H_404_17@31@H_404_17@32@H_404_17@33@H_404_17@34@H_404_17@35@H_404_17@36@H_404_17@3 大专栏 ArcGIS API For Javascript之影像服务分析7@H_404_17@38@H_404_17@39@H_404_17@40@H_404_17@41@H_404_17@42@H_404_17@43@H_404_17@44@H_404_17@45@H_404_17@46@H_404_17@47@H_404_17@48@H_404_17@49@H_404_17@50@H_404_17@51@H_404_17@52@H_404_17@53@H_404_17@54@H_404_17@55@H_404_17@56@H_404_17@57@H_404_17@58@H_404_17@59@H_404_17@60@H_404_17@61@H_404_17@62@H_404_17@63@H_404_17@64@H_404_17@65@H_404_17@66@H_404_17@67@H_404_17@68@H_404_17@69@H_404_17@70@H_404_17@71@H_404_17@72@H_404_17@73@H_404_17@74@H_404_17@75@H_404_17@76@H_404_17@77@H_404_17@78@H_404_17@79@H_404_17@80@H_404_17@81@H_404_17@82@H_404_17@83@H_404_17@84@H_404_17@85@H_404_17@ | <!DOCTYPE html>@H_404_17@<html>@H_404_17@ <head>@H_404_17@ <title>index.html</title>@H_404_17@ @H_404_17@ <Meta http-equiv="keywords" content="keyword1,keyword2,keyword3">@H_404_17@ <Meta http-equiv="description" content="this is my page">@H_404_17@ <Meta http-equiv="content-type" content="text/html; charset=utf-8">@H_404_17@ <link rel="stylesheet" type="text/css" href="http://localhost/arcgis_js_api/library/3.17/3.17/dijit/themes/tundra/tundra.css"/>@H_404_17@ <link rel="stylesheet" type="text/css" href="http://localhost/arcgis_js_api/library/3.17/3.17/esri/css/esri.css" />@H_404_17@ <script type="text/Javascript" src="http://localhost/arcgis_js_api/library/3.17/3.17/init.js"></script>@H_404_17@ <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->@H_404_17@ <style>@H_404_17@ .MapClass{@H_404_17@ width:100%;@H_404_17@ height:500px;@H_404_17@ border:1px solid #000;@H_404_17@ }@H_404_17@ </style>@H_404_17@ <script>@H_404_17@ require(["esri/map","esri/layers/ArcGISImageServiceLayer","dojo/on",@H_404_17@ "dojo/dom","esri/toolbars/draw",@H_404_17@ "esri/tasks/ImageServiceIdentifyTask","esri/tasks/ImageServiceIdentifyParameters",@H_404_17@ "esri/symbols/SimpleLinesymbol","esri/graphic","esri/symbols/SimpleMarkerSymbol", "esri/symbols/SimpleFillSymbol",@H_404_17@ "esri/layers/Mosaicrule",@H_404_17@ "dojo/domready!"],function(Map,ArcGISImageServiceLayer,on,dom,Draw,ImageServiceIdentifyTask,@H_404_17@ ImageServiceIdentifyParameters,SimpleLinesymbol,@H_404_17@ Graphic,SimpleMarkerSymbol,SimpleFillSymbol,Mosaicrule){@H_404_17@ var map=new Map("mapDiv")@H_404_17@@H_404_17@ //注意这里是影响服务@H_404_17@ var layer=new ArcGISImageServiceLayer("http://192.168.0.112:6080/arcgis/rest/services/Test/Dem1/ImageServer")@H_404_17@ map.addLayer(layer);@H_404_17@ //用于绘制点@H_404_17@ var toolbar =new Draw(map);@H_404_17@ @H_404_17@ //创建影像分析对象@H_404_17@ var task=new ImageServiceIdentifyTask("http://192.168.0.112:6080/arcgis/rest/services/Test/Dem1/ImageServer");@H_404_17@ //创建影像分析参数对象@H_404_17@ var params=new ImageServiceIdentifyParameters();@H_404_17@ var linesymbol = new SimpleLinesymbol(SimpleLinesymbol.STYLE_DASH, new dojo.Color([255, 0, 0]), 3);@H_404_17@ var marker= new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CIRCLE,10, linesymbol, new dojo.Color([255, 0, 0]));@H_404_17@ var fill= new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, linesymbol, new dojo.Color([255, 0, 0]));@H_404_17@ //给绘制折线按钮绑定事件@H_404_17@ on(dom.byId("drawp"),"click",function(){@H_404_17@ toolbar.activate(Draw.POINT, {@H_404_17@ showTooltips:true@H_404_17@ })@H_404_17@ })@H_404_17@ //给draw工具的绘制完成事件绑定函数@H_404_17@ on(toolbar,"draw-complete", function (result) {@H_404_17@ map.graphics.clear();@H_404_17@ var geometry=result.geometry;@H_404_17@ //给参数对象的几何属性赋值@H_404_17@ params.geometry =geometry;@H_404_17@ graphic= new Graphic(geometry, marker);@H_404_17@ map.graphics.add(graphic);@H_404_17@ toolbar.deactivate();@H_404_17@ @H_404_17@ })@H_404_17@ @H_404_17@ on(dom.byId("btn"),"click",function(){@H_404_17@ //设置掩膜规则@H_404_17@ var mosaicrule=new Mosaicrule();@H_404_17@ mosaicrule.ascending=false;@H_404_17@ mosaicrule.method=Mosaicrule.METHOD_CENTER@H_404_17@ params.mosaicrule=mosaicrule@H_404_17@ params.pixelSizeX=layer.pixelSizeX;@H_404_17@ params.pixelSizeY=layer.pixelSizeY;@H_404_17@ task.execute(params,function(result){@H_404_17@ //弹出改点的高程值@H_404_17@ alert(result.value)@H_404_17@ })@H_404_17@ })@H_404_17@ @H_404_17@ });@H_404_17@ </script>@H_404_17@ </head>@H_404_17@ @H_404_17@ <body>@H_404_17@ <div id="mapDiv" class="MapClass"></div>@H_404_17@ <button id="drawp">绘制点</button>@H_404_17@ <button id="btn">查询</button>@H_404_17@ </body>@H_404_17@</html>@H_404_17@ |
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。