点线面空间分析实现代码(2021年整理)

上传人:摩西的****12 文档编号:172326382 上传时间:2021-03-09 格式:PPTX 页数:35 大小:263.28KB
返回 下载 相关 举报
点线面空间分析实现代码(2021年整理)_第1页
第1页 / 共35页
点线面空间分析实现代码(2021年整理)_第2页
第2页 / 共35页
点线面空间分析实现代码(2021年整理)_第3页
第3页 / 共35页
点线面空间分析实现代码(2021年整理)_第4页
第4页 / 共35页
点线面空间分析实现代码(2021年整理)_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《点线面空间分析实现代码(2021年整理)》由会员分享,可在线阅读,更多相关《点线面空间分析实现代码(2021年整理)(35页珍藏版)》请在金锄头文库上搜索。

1、点线面缓充区分析的实现代码 1.ArcGIS.Server.9.3 和ArcGIS API for JavaScript 实现实现点、线、面的buffer 分析,这里是通过 GeometryServer 实现。 准备工作: 在ArcGis Server9.3 中发布名为usa 的MapServer。 在ArcGis Server9.3 中发布名为Geometry 的GeometryServer。 完成后的效果图,开始 关于 GeometryServer 的介绍,可以看本系列的第九篇。 启动 vs 新建名为BufferSample 的ASP.NET Web 应用程序。其实jsapi 是纯客户端的

2、开发了不需 要 vs 也不需要.net 了,纯html 页面就可以了用记事本都可以开发了。我这里为了方便了就用 vs2008 了, 毕竟可以调试js 脚本了。 接着在工程中添加名为 javascript 的文件夹并且在这个文件夹里新建wabapp.js 的文件,这里用来 编写我们自己的js 代码了,在 Default.aspx 页面里添加对这个js 文件的引用,同时在 Default.aspx 页面里 添加一个 id 为map 的div 标签作为地图控件的载体、5 个input 的功能按钮、2 个input 的输入框、1 个 select 选择列表: Untitled Page #Text1,

3、1,2,width: 54px; ”dd,3,3、上面的html 代码中主要可以看一下 5 个input 按钮的onclick 事件,分别实现了画点、画线、画 面、漫游、清楚图形的代码很简单了,还有就是单位选择的select 了已经添加了 7 个常用的单位。 4、切换到wabapp.js 编写js 代码,本例子的js 代码分为 3 部分功能,第一载入地图进行显示;第 二进行画点、线、面操作;第三根据画的点、线、面图形进行buffer 分析。具体的说明看代码注释: dojo.require(“esri.map“); dojo.require(“esri.tasks.geometry“); doj

4、o.require(“esri.toolbars.draw“); dojo.require(“esri.tasks.query“); djConfig = isDebug:true ; var map,tb,geometryService,queryTask,query; function init() startExtent = new esri.geometry.Extent(-183.780014745329,16.2975638854873,-61.406854741 0964,74.0304580085983, new esri.SpatialReference(wkid:4269)

5、; map = new esri.Map(“map“); /底图 Tile 图 var imageryPrime = new esri.layers.ArcGISTiledMapServiceLayer(“http:/server.arcgisonline.co m/ArcGIS/rest/services/NGS_Topo_US_2D/MapServer“); map.addLayer(imageryPrime,var usa = new esri.layers.ArcGISDynamicMapServiceLayer(“http:/jh-53a435fbc0e8/ArcGIS/rest/

6、services/USA/MapServer“); /设置要显示的图层 /usa.setVisibleLayers(0); /设置图层透明度 usa.setOpacity(0.8,4,map.addLayer(usa); /设置地图视图范围 map.setExtent(startExtent); geometryService = new esri.tasks.GeometryService(“http:/jh-53a435fbc0e8/ArcGIS/rest/service s/Geometry/GeometryServer“); tb = new esri.toolbars.Draw(ma

7、p); dojo.connect(tb, “onDrawEnd“, doDraw); /画图 function doDraw(geometry) /根据图形的类型定义显示样式 switch (geometry.type) case “point“: var symbol = new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STY LE_SQUARE, 10, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, n

8、ew dojo.Color(255,0,0), 1), new dojo.Color(0,255,0,0.25); break; case “polyline“: var symbol = new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_D ASH, new dojo.Color(255,0,0), 1); break; case “polygon“: var symbol = new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STY

9、LE_SO LID, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color (0,0,0), 1), new dojo.Color(255,0,0,0.25); break; /把绘制的图形添加到 map.graphics 进行显示 var graphic = new esri.Graphic(geometry, symbol); map.graphics.add(graphic,5,如果是面需要先进行 simplify 操作,否则直接进行buffer if(geome

10、try.type = “polygon“) geometryService.simplify(graphic,doSimplify); else doBuffer(graphic); /simplify 结束调用buffer function doSimplify(graphics) doBuffer(graphics); function doBuffer(graphics) /buffer 参数 var params = new esri.tasks.BufferParameters(); /buffer 的范围值,从输入框中获取 params.distances = dojo.byId(

11、distance).value ; /空间参考 params.bufferSpatialReference =new esri.SpatialReference(wkid: dojo.byId(“wkid“).value); /输出结果的空间参考 params.outSpatialReference = map.spatialReference; params.features = graphics; /buffer 的单位,从列表框获取 params.unit = eval(“esri.tasks.BufferParameters.“+dojo.byId(“unit“).value); /b

12、uffer 操作,6,geometryService.buffer(params,showBuffer); /显示buffer 的结果 function showBuffer(features) var symbol = new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_SOLID,n ew esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID,new dojo.Color(255, 0,0,0.65), 2),new do

13、jo.Color(255,0,0,0.35); for (var j=0;jfeatures.length;j+) var graphic = new esri.Graphic(featuresj.geometry,symbol); map.graphics.add(graphic); tb.deactivate(); map.showZoomSlider(,dojo.addOnLoad(init); 5、这样就完成了buffer 的例子,标签:arcgis api javasrcipt、arcgis server 9.3、buffer 149 Views | 1 条评论 ArcGIS.Ser

14、ver.9.3 和ArcGIS API for JavaScript 保存自定义图形(十) 2009 年 09 月 10 日 10:01 上午 | 分类:JavaScript 目的: 1.ArcGIS.Server.9.3 和ArcGIS API for JavaScript 实现自定义图形,保存自定义的Graphic 图形到 服务端的xml 文件中,同时也能在地图载入时读入xml 中的图形数据显示到地图中。 这里的自定义面的 Label 是通过GeometryServer 的labelPoints 实现的。 准备工作: 1. 在ArcGis Server9.3 中发布名为Geometry 的

15、GeometryServer。 完成后的效果图,7,开始 关于 GeometryServer 的labelPoints 介绍,labelPoints 允许在多边形中指定Label 显示的位置点, 是jsapi1.2 才支持的新功能,需要需要ArcGIS Server 9.3 sp1 支持。 启动 vs 新建名为SaveGraphics 的ASP.NET Web 应用程序。 接着在工程中添加名为 javascript 的文件夹并且在这个文件夹里新建mapfunc.js 的文件,这里用来 编写我们自己的js 代码了,在 Default.aspx 页面里添加对这个js 文件的引用,同时在 Default.aspx 页面里 添加一个 id 为map 的div 标签作为地图控件的载体、2 个input 的功能按钮: Untitled Page import ”http:/ emes/tundra/tundra.css”;,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号