原文: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 方法保证其有 效性。

ArcGIS Engine开发之旅09--几何对象和空间参考的更多相关文章

  1. ArcGIS Engine开发之旅08--和查询相关的对象和接口

    原文:ArcGIS Engine开发之旅08--和查询相关的对象和接口 查询在GIS领域应该是一个很频繁的操作,在GIS中除了具有属性查询(和其他关系型数据库的查询类似),还提供了空间查询.在介绍查询 ...

  2. ArcGIS Engine开发之旅05---空间数据库

    原文:ArcGIS Engine开发之旅05---空间数据库 1  Geodatabase概念 Geodatabase是ArcInfo8引入的一种全新的面向对象的空间数据模型,是建立在DBMS之上的统 ...

  3. ArcGIS Engine开发之旅04---ARCGIS接口详细说明

    原文:ArcGIS Engine开发之旅04---ARCGIS接口详细说明 ArcGIS接口详细说明... 1 1.      IField接口(esriGeoDatabase)... 2 2.    ...

  4. ArcGIS Engine开发之旅03--ArcGIS Engine中的控件

    原文:ArcGIS Engine开发之旅03--ArcGIS Engine中的控件 制图控件,如MapControl.PageLayoutControl,其中MapControl控件主要用于地理数据的 ...

  5. ArcGIS Engine开发之旅02--ArcGIS Engine中的类库

    原文:ArcGIS Engine开发之旅02--ArcGIS Engine中的类库 System类库 System类库是ArcGIS体系结构中最底层的类库.System类库包含给构成ArcGIS的其他 ...

  6. ArcGIS Engine开发之旅10--空间参考及坐标转换

    原文:ArcGIS Engine开发之旅10--空间参考及坐标转换 空间参考(Spatial Reference)是 GIS 数据的骨骼框架,能够将我们的数据定位到相应的位置,为地图中的每一点提供准确 ...

  7. ArcGIS Engine开发之旅07---文件地理数据库、个人地理数据库和 ArcSDE 地理数据库中的栅格存储加以比较 、打开栅格数据

    原文:ArcGIS Engine开发之旅07---文件地理数据库.个人地理数据库和 ArcSDE 地理数据库中的栅格存储加以比较 .打开栅格数据 对文件地理数据库.个人地理数据库和 ArcSDE 地理 ...

  8. ArcGIS Engine开发之旅01---产品组成、逻辑体系结构

    原文:ArcGIS Engine开发之旅01---产品组成.逻辑体系结构 ArcGIS Engine 由两个产品组成:  面向开发人员的软件开发包(ArcGIS Engine Developer k ...

  9. arcgis engine 开发之QI

    ArcGIS Engine开发基础之QI AO开发中QI(接口查询)非常重要,从某种意义上说不会QI就不会做AO开发. 在讲ArcGIS Engine开发QI实例操作之前,以一个现实生活例子以方便大家 ...

随机推荐

  1. python 代码片段4

    #coding=utf-8 # 任何等于0的数值被认为是False,所有非零的数字被认为True, # 空的容器为False,飞控容器酒味True. download_complete=False p ...

  2. BZOJ3413 : 匹配

    FDUSC前刷刷题吧.. 本题每个询问就是说将询问串与主串每个后缀匹配,若匹配成功则结束,否则加上lcp的长度 对主串建立后缀树,并用主席树维护DFS序 对于每个询问串,找到最后走到的点fin_nod ...

  3. CC150 - 11.6

    Question: Given an M x N matrix in which each row and each column is sorted in ascending order, writ ...

  4. 手机开发必备技巧:javascript及CSS功能代码分享

    1. viewport: 也就是可视区域.对于桌面浏览器,我们都很清楚viewport是什么,就是出去了所有工具栏.状态栏.滚动条等等之后用于看网页的区域,这是真正有效的区域.由于移动设备屏幕宽度不同 ...

  5. 8.0 Qweb 报表编写步骤

    8.0 采用的是Qweb报表,摒弃了7.0中的RML报表. 1.首先在xml文件中注册一个报表: <report id="qweb_test_report" model=&q ...

  6. 完美洗牌&洗牌

    完美洗牌问题,给定一个数组a1,a2,a3,...an,b1,b2,b3..bn,把它最终设置为b1,a1,b2,a2,...bn,an这样的. O(n)的算法,O(n)的空间. 对于前n个数,映射为 ...

  7. Self Service Password (SSP)

    安装SSP, 依赖包包括php5, php5-ldap, php5-mcrypt 启用mcrypt功能: sudo php5enmod mcrypt 第一部分: Apache 安装Apache, 并且 ...

  8. Scrum会议4

    组名称:天天向上 项目名称:连连看 参会成员:王森(Master)张金生 张政 栾骄阳 时间:2016.10.19 已完成内容: 1.连连看生成一关功能. 2.目前测试发现没有问题. 计划完成: 1. ...

  9. POJ 3254 Corn Fields(状压DP)

    Corn Fields Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 13732   Accepted: 7216 Desc ...

  10. Excel中如何在两个工作表中查找重复数据

    有时我们可能会在两种工作表中查找重复记录,当数据记录很多时,就必须通过简单的方法来实现.下面小编就与大家一起分享一下查看重复记录数据的方法,希望对大家有所帮助. 方法/步骤   为了讲解的需要,小编特 ...