ArcGIS Engine开发之旅09--几何对象和空间参考
1.Geometry
Geometry 是 GIS 中使用最为广泛的对象集之一,用户在创建、删除、编辑和进行地理分析的时候,就是处理一个包含几何形体的矢量对象;除了显示要素意外,控件对象选择,要素符号化,标注要素,编辑要素都需要 Geometry 参与。在 ArcGIS Engine 中,几个对象都有严格的定义,比如我们所说的直线,多断线等,于此同时 ArcGIS Engine 提供了而一个几何对象的模型图,如下:
2.Geometry 集合接口
通过前边对于具体的 Geometry 对象的介绍可知,除了 Point 对象之外,其他几何对象都是通过其他几何对象集合构建而成。如 MultiPoint 对象是点的集合,Path 对象是 Segment 对象的集合,Polyline 对象是 Path 对象的集合,Polygon 对象是 Ring 对象的集合,Multipatch 对象是 Triangle Strip 和 Trangle Fan, Trangle,Ring 对象的集合。 ArcGIS Engine 提供 了三个主要的几何图形集合接口用于对几何对象的操作 ,分别是IPointCollection,ISegmentCollection 和 IGeometryCollection,这些接口揭示出 ArcGIS Engine 的几何模型的实质——它们是一种组合构成的模式,这种组合并不一定按照严格的层次结构组织。 在前面介绍一些几何对象的时候,也给大家演示了部分使用功能,这三个接口在程序开发中经常使用到,接下来简单阐述以下这三个接口的使用方法。 IGeometryCollection 接口被 Polygon,Polyline, Multipoint, Multipatch, Trangle,T rangle Strip,Trangle Fan 和 GeometryBag 所实现。IGeometryCollection 接口提供的方法可以让开发者对一个几何对象的组成元素即子对象进行添加,改变和移除。例如:
组成 Polyline 对象的子对象是 Path 对象。
组成 Polygon 对象的子对象是 Ring 对象。
组成 Multipoint 对象的子对象是 Point 对象。
组成 MultiPatch 对象的子对象是 TrangleFan TrangleStrip,Triangle 或 Ring 对象。
组成 GeometryBag 对象的是任何类型的几何体对象,实际上 GeometryBag 是一个可以容纳任何类型几何对象的容器。
IGeometryCollection、这个接口是具有相同类型的几何对象的集合,该接口的的 Geometry 属性可以通过一个索引值返回一个组成该几何对象的某个子对象,而 GeometryCount 返回组成该几何对象的子对象的数目。
IGeometry 的 AddGeometry 和 AddGeometries 方法都用于向一个几何对象添加子对象,它们的区别是前者一次只能添加一个几何对象,而后者可以一次添加一个几何对象数组。除此之外,AddGeometry 方法可以将子对象添加到几何的指定索引值的位置,而 AddGeometries 方法将子对象数组添加到集合的最后。 在使用 AddGeometry 方法添加子对象到 Polygon 对象的过程中,如果子对象即 Ring 出现覆盖现象,那么多边形就没有封闭或出现了包含关系,那么这个 Polygon 就不是简单 Polygon,因此通过IGometryCollection 来创建一个 Polygon 时,需要使用 ITopologicalOperator 的 Simplify 方法保证其有 效性。
转载于:https://www.cnblogs.com/CSharpLover/p/5734312.html
ArcGIS Engine开发之旅09--几何对象和空间参考相关推荐
- ArcGIS Engine开发之旅08--和查询相关的对象和接口
ArcGIS Engine开发之旅08--和查询相关的对象和接口 原文:ArcGIS Engine开发之旅08--和查询相关的对象和接口 查询在GIS领域应该是一个很频繁的操作,在GIS中除了具有属性 ...
- ArcGIS Engine开发之旅02--ArcGIS Engine中的类库
原文 ArcGIS Engine开发之旅02--ArcGIS Engine中的类库 System类库 System类库是ArcGIS体系结构中最底层的类库.System类库包含给构成ArcGIS的其他 ...
- 五.几何对象和空间参考
几何对象是ArcGIS Engine中最基本的也是最常用的对象,我们所说的空间对象(点,线,面)都是几何 对象,我们在删除,创建和进行地理分析的时候,就是处理一个包含几个对象的矢量图形. Geomet ...
- ArcGIS Engine开发之TocControl
TocControl控件简介 TocControl控件的主要作用是显示当前加载的图层有哪些.采用什么样的符号等,目的是使用户对当前加载的数据有一个总体的把握.与之相关联的伙伴控件有:MapContro ...
- Android 开发之旅:深入分析布局文件又是“Hello World!”
引言 上篇可以说是一个分水岭,它标志着我们从Android应用程序理论进入实践,我们拿起手术刀对默认的"Hello World!"程序进行了3个手术,我们清楚了"Hell ...
- Android开发之旅:组件生命周期(二)
引言 应用程序组件有一个生命周期--一开始Android实例化他们响应意图,直到结束实例被销毁.在这期间,他们有时候处于激活状态,有时候处于非激活状态:对于活动,对用户有时候可见,有时候不可见.组件生 ...
- Android开发之旅:应用程序基础及组件
--成功属于耐得住寂寞的人,接下来几篇将讲述Android应用程序的原理及术语,可能会比较枯燥.如果能够静下心来看,相信成功将属于你. 引言 为了后面的例子做准备,本篇及接下来几篇将介绍Android ...
- Android NDK开发之旅31 FFmpeg音频解码
###前言 #####基于Android NDK开发之旅30--FFmpeg视频播放这篇文章,我们已经学会视频解码基本过程.这篇文章就对音频解码进行分析. #####音频解码和视频解码的套路基本是一样 ...
- Android开发之旅:android架构
引言 通过前面两篇: Android 开发之旅:环境搭建及HelloWorld Android 开发之旅:HelloWorld项目的目录结构 我 们对android有了个大致的了解,知道如何搭建and ...
最新文章
- 写文章 TEE技术分析【转】
- shell笔记之sed编辑器的基础用法(上)
- 【转】5个常用的深度学习框架
- Verilog初级教程(21)Verilog中的延迟控制语句
- 喝不起奶茶,咱就为奶茶店开发个会员积分收银系统
- eclipse javaw.exe in your current path问题
- c++中运算符重载(加号运算,左移运算,前置后置++运算符,赋值运算,关系运算,函数运算)
- WinForms多线程编程之摇奖程序
- 【jvm】JVM体系
- while 中 break 与 continue 的区别
- Docker Redis 安装
- word2vec模型
- Unity3D for VR 学习(2): 暴风魔镜框架探索
- 虚拟机u盾怎么使用_Linux下如何使用网银
- 第16章 起舞不落幕——与纹理映射的华丽邂逅
- linux如何设置默认浏览器,如何从命令行设置默认浏览器?
- 利用Python和OpenCV将图像灰度图转为3D图并显示
- JSP 返回上一页的几种方法
- 【知识点】单片机USB转TTL模块的相关知识
- python pyside2 connect无法传递参数问题