牟乃夏ArcEngine教程-第7章__矢量数据空间分析_第1页
牟乃夏ArcEngine教程-第7章__矢量数据空间分析_第2页
牟乃夏ArcEngine教程-第7章__矢量数据空间分析_第3页
牟乃夏ArcEngine教程-第7章__矢量数据空间分析_第4页
牟乃夏ArcEngine教程-第7章__矢量数据空间分析_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、牟乃夏牟乃夏 ArcGIS Engine 地理信息系统开发教地理信息系统开发教 程程 配套配套PPT- 第7章 矢量数据空间分析 目录 1. 空间拓扑分析 2. 空间关系运算 3. 叠加分析 4. 数据格式转换 5. 添加X Y数据 6. 使用GP工具进行空间分析 1. 空间拓扑分析 通过一系列的基于一个或者多个几何图形间的逻辑比较,然后返回另外一些几 何图形的过程就是空间几何图形的拓扑运算。它是空间分析的基础,各种空间 分析的结果都可以通过几何图形之间的拓扑运算实现。 相关类与接口(ITopologicalOperator接口) ITopologicalOperator接口的方法仅仅使用在高

2、级别几何对象上,即Point、MultiPoint、 Polyline和Polygon,如果要使用在低等级的几何对象中,如Segment(Line,Circular,Arc, Elliptic Arc,Bezier Curve)、Path或Ring上,需要先将他们组合成高级别几何对象才行。 1. 空间拓扑分析 ITopologicalOperator接口的主要 方法及属性有: 1)Boundary属性 2)Buffer方法 3)Clip方法 4)Union与ConstructUnion方法 5)ConvexHull方法 6)Cut方法 7)Difference方法与 SymmetricDiff

3、erence方法 8)Intersection方法 9)Simplify方法 Boundary Buffer方法 Clip方法 Union方法 ConvexHull方法 Cut方法 Difference方法SymmetricDifference方法 Intersection方法 Simplify方法 1. 空间拓扑分析 1.1 实例详解-缓冲区分析 本例的目的是实现在地图上点击选择任意一个多边形要素,程序自动生成该多 边形一定范围内的缓冲区并渲染到地图上。 实现的基本思路为: 添加缓冲区分析操作工具; 在其OnMouseDown方法中执行点击查询要素操作; 将查询结果要素通过ITopologi

4、calOperator. Buffer方法进行缓冲区生成操作; 将缓冲区生成结果利用空间要素渲染方式展示到地图上。 1. 空间拓扑分析 其程序设计具体步骤为: 向工程项目中添加继承自BaseTool类的文件,该类实现了BaseCommand基础类和ITool 接口的所有方法; 添加ToolBufferAnalysis 类中的OnClick方法的实现代码,用以判定是否符合缓冲区操作 的前提条件(地图中是否加载图层),并修改鼠标样式; 添加ToolBufferAnalysis 类的OnMouseDown方法的实现,生成缓冲区并将生成的缓冲区 要素添加到地图中; 1. 空间拓扑分析 在主程序窗体的按

5、钮事件中,利用ICommand接口调用ToolBufferAnalysis工具 类,实现点击选择地理要素并生成缓冲区的操作; 点击选择后的多边形生成缓冲区效果展示 1. 空间拓扑分析 1.2 实例详解-获取多边形要素边界 本例旨在实现通过在地图上点击选择任意一个多边形图形要素,系统自动获得 该多边形的边界并渲染展示到地图上。 核心代码 2. 空间关系运算 相关类与接口(IRelationalOperator 接口) 几何对象之间空间关系主要有:包含、相等、在内部、相交等。矢量数据的空间关系运算 需要用到IRelationalOperator接口,通过该接口的不同方法判定两个几何对象之间的关系

6、是否存在。关系运算符用以比较两个几何体,并返回一个boolean型值来说明某种空间关系 是否存在。 空间包含关系(Contains、Within) 交叉(Crosses) 相离(Disjoint) 重叠(Overlaps) 相等(Equals) 相接(Touches) 2. 空间关系运算 2.1 实例详解-查找一多边形要素的所有邻接要素 本例通过在地图上点击选择任意一个多边形,系统自动获取与该多边形要素相 邻接的其它多边形并显示到地图上。 核心代码 3. 叠加分析 叠加分析(也称叠置分析)是将同一区域,相同参考系统、相同比例尺的两个 或多个数据进行叠加产生一个新数据层的操作,其结果综合了原来两

7、层或多层 要素所具有的属性信息,并且还能从已有的数据中提取空间隐含的信息。 相关类与接口(IBasicGeoprocessor接口) 叠加分析所用到的主要接口是IBasicGeoprocessor接口,它提供了基本的矢量数据处理的 方法和属性,概括为叠置求交与叠置求和。该接口包括5个方法(Intersect、Union、Clip、 Dissolve、Merge)和2个属性(SpatialReference和CancelTracker)。 3. 叠加分析 Clip方法原理图 Dissolve方法原理图 Intersect方法原理图 Merge方法原理图 Union方法原理图 3. 叠加分析 实例

8、详解:两相交面图层的裁剪(Clip)分析 本例利用IBasicGeoprocessor接口的Clip方法实现两个相交面图层的裁剪分析操作,通过 输入被裁剪要素图层和裁剪要素图层,获得目标要素图层,该图层的数据结构同被裁剪要 素的数据结构保持一致。 实现步骤如下: 主窗体中添加触发裁剪操作按钮事件的代码,通过获取裁剪图层和被裁剪图层,调用Clip 公共方法,返回结果FeatureClass数据集,并加载到地图中; 添加通过图层名称从地图mapControl空间中获取对应图层公共方法函数 GetLayerByName(string layerName); 添加Clip裁剪公共方法,利用IBasic

9、Geoprocessor接口中的Clip方法实现裁剪操作,生成 ShapeFile数据作为保存在磁盘中,并输出结果FeatureClass作为返回结果数据; 关于裁剪操作,在 7.1讲解ITopologicalOperator 接口时介绍了Clip方法,在IBasicGeoprocessor接 口中也有Clip方法。这两个方法的区别是: ITopologicalOperator是针对两矢量空间要素进行 图形信息的裁剪;IBasicGeoprocesso主要针对矢量 要素集(图层),其结果综合了原来两层或多层要 素所具有的属性信息。 4. 数据格式转换 矢量数据的格式转换是GIS软件常用的功能之

10、一,在自己编写的应用软件中,也经 常用到该功能。常用的数据格式转换方法主要有ShapeFile文件和CAD文件、 Coverage文件等的转换。 相关类与接口(IFeatureDataConverter接口) 数据格式转换操作主要用到IFeatureDataConverter接口,它包含三个方法: ConvertFeatureClass、ConvertFeatureDataset和ConvertTable,分别可以将要素类、要素 集或表转换成其它数据集,它不仅可以转换单个的要素类或表,也可以转换整个数据集 (如ArcInfo Coverage)。 同时,FeatureDataConverter

11、对象能够使数据在Geodatabase,ShapeFile和Coverages等 大多数的数据类型(除了标注)之间实现转换。在把数据引入Geodatabase时,可以进行 数据的条件筛选,只将符合条件的要素转换到目标要素集;当进行数据转入到ArcSDE Geodatabase中时,还可以通过配置ArcSDE的某些关键字来指定存储参数。 4. 数据格式转换 以ConvertFeatureClass方法为例说明,其转换过程各参数意义如下: 1)InputDatasetName(IFeatureClassName)参数 用于指定输入要素类的一个Name对象,以确定待转换的矢量数据。 2)InputQ

12、ueryFilter(IQueryFilter)参数 用于过滤要转换的要素的QueryFilter对象,用以筛选待转换的矢量数据。 3)outputFDatasetName(IFeatureDatasetName)参数 转换完成的要素类输出的新数据结果集成到现有数据集的IFeatureDatasetName对象中。 4)outputFClassName(IFeatureClassName)参数 转换完成后,输出要素类的Name对象。 5)OutputGeometryDef(IGeometryDef)参数 用于指定输出要素类的空间参考信息的GeometryDef对象。如果为null,就使用输入要

13、素类的空间参考信息。 6)OutputFields(IFields)参数 用于指定输出要素类的字段集。如果把要素结果类输出为同样的数据格式,可以使用输入的要素类的字段集。 如果格式有变化,建议使用FieldChecker以确保输出的格式有效。 7)configKey(string)参数 用于指定ArcSDE配置关键字的字符串。 4. 数据格式转换 实例详解-将ShapeFile数据导入到File Geodatabase 本实例通过IFeatureDataConverte接口的ConvertFeatureClass方法将 ShapeFile格式的数据转换导入到File Geodatabase数据

14、库中,并可以设置属 性筛选条件进行部分导入。 实例步骤: 4. 数据格式转换 实例详解-通过数据解析方式实现ShapeFile数据转CAD格式数据 实现思路:首先通过对ShapeFile数据的遍历以及属性条件进行筛选,然后将符合条件的数据 利用System.IO.TextWrite方法类进行CAD文件的写入,实现数据格式的转化。 实现步骤: 首先获取地图中加载的ShapeFile数据转换为ILayer接口的对象,然后选择转换成功后CAD格式数据的存 储路径,调用封装的ConvertShapeToDXF类中的转换方法实现转换,转换成功后进行信息提示; 获取 FeatureLayer对象的数据最大

15、范围矩形,并据此进行CAD文件区域范围的写入; 初始化构建CAD文件属性表; 初始化构建CAD文件块; 初始化构建CAD文件实体,即将解析后的ShapeFile数据进行CAD文件格式的写入,此过程可以针对写入 的要素进行条件筛选; 以Point对象为例,设置CAD对象的线长、颜色。此外,Polyline和Polygon也可以参照此方法进行设置, 不过要比Point复杂,具体代码请读者参考随书光盘; 5. 添加X Y数据 ArcGIS软件中有添加X、Y数据的功能,目的是将以X、Y二维几何坐标形式存 储的数据转换为GIS中的图形数据。 相关类与接口 实现将包含X、Y坐标的文本文件、Excel文件或

16、者Access文件生成GIS的点数据的接口主 要有:IXYEventSource、IXYEventSourceName和IXYEvent2FieldsProperties等。 5. 添加X Y数据 相关类与接口 1)IXYEventSource接口 IXYEventSourceName接口的Open方法执行将X、Y数据转化为IFeatureClass的功能,形成空间数据。 2)IXYEventSourceName接口 IXYEventSourceName接口主要用于初始化XYEventSourceNameClass对象,利用其EventProperties属 性赋予IXYEvent2Field

17、sProperties初始化对象值,完成属性的传递。同时IXYEventSourceName对象强制 转化为IName对象,借助IName对象的Open方法形成IXYEventSource空间要素数据集,即可强制转化为 IFeatureClass空间矢量要素数据集,然后可进行数据加载。 3)IXYEvent2FieldsProperties接口 IXYEvent2FieldsProperties接口主要用于赋予EventProperties属性值,通过 SpatialReference 属性赋予坐标系统和EventTableName 属性赋予事件数据结果表名称。 5. 添加X Y数据 实例详解

18、-带有X、Y字段的Excel数据表转为点数据 本例将带有X、Y字段的Excel数据表转化为点要素类,通过指定对应的数据字段和坐 标参考将表对象转化为IFeatureClass对象。 实现的具体步骤为: 向工程项目中添加自定义窗体,该窗体命名为“FrmXYToPoint”,其设计布局和属性设置。 利用打开Excel坐标文件的【打开】按钮的Click方法实现通过OleDbConnection数据访问类打 开Excel数据,并读取Excel中Sheet列表添加到“选择坐标数据表”下拉列表控件中; 利用“选择坐标数据表”下拉列表中的SelectedIndexChanged事件读取所选择的Sheet表中 字段集合并加载到X、Y字段选择下列列表中; 利用数据转化【成图】按钮的Click方法执行数据转换过程; 数据转化完成,带有X、Y坐标字段的数据转换成点数据。 6. 使用GP工具进行空间分析 ArcToolbox是所有工具的集合,提供工具运行的环境。在ArcGIS Engine编程过程中, 可以通过调用GP工具来实现某些常用的功能。 相关类与接口 调用GP工具主要应用了GeoProcessor类,这个类也可以调用我们

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论