1、Geometry体系结构

如果要看完整的Geometry体系结构,那么可以去查看帮助中的类结构图,非常完整和严谨。可以通过下图方式打开。

点击打开后,会发现里面的结构非常复杂。但如果我们抽丝剥茧的看的话,其结构逻辑又非常严谨。如下图所示。

这样看起来就比较繁杂,我们可以把我们常用的Geometry提取出来,并把其关系连接起来,得到一个相对简单的结构。

2、IRelationalOperator接口

该接口为几何体的相关性判断接口,该接口的定义如下。

主要判断几何体之间是都存在包含、交叉、重叠、在内部等,具体点开每个函数,都会有图形说明,描述的非常详细和直观。例如交叉关系的帮助页如下图所示。

这段文字说的是Crosses函数判断只对线-线、线-面和面-线有效,并且在图片中说明了哪种算是Crosses关系。

3、ITopologicalOperator接口

该接口为空间拓扑计算接口,该接口的定义如下。

这个接口主要对几何体的拓扑结构进行分析计算,例如求一个几何体的缓冲区、得到其外包凸多边形、裁切、得到相交几何体、合并等。同样进入每个函数的详细页面,都会有详细的说明以及直观的示意图。以Buffer为例,如下图所示。

说明的大概意思为,缓冲区距离设置的值是和几何体本身的单位是一致的。可以设定复制,在多边形内部生成几何体,但折现不能这么使用。这些函数只能应用point, multipoint, polyline and polygon,如果需要使用Line, Circular Arc, Elliptic Arc等,则需要转换以下。例如Elliptic Arc可以先转换成Polygon,再进行运算。

4、其他功能

IGeometry. Project,该函数可以把当前几何体投影成指定的空间参考。ITransform2D和ITransform3D提供了几何体的旋转、平移以及其他一些复杂的几何体空间转换功能。IHitTest接口,平产用的不是太多,例如我们点击一个Polygon的时候,如果只是判断是否点击到了多边形,则通过IRelationalOperator接口判断即可。但如果想具体知道点击了那个部分、那个边线或者节点,则可以使用IHitTest接口。

ArcObjects SDK 018 Geometry的更多相关文章

  1. ArcObjects SDK(AE)10.1在vs2012安装的方法

    ArcObjects SDK(以下简称AO)10.1只支持vs2010,如果装了vs2012,再安装AO会提示一串鸡肠(英文),意思是AO10.1只支持vs2010 想在2012下安装,可以通过修改注 ...

  2. ArcObjects SDK开发 007 自定义App-Command-Tool框架

    1.为什么再设计一套App-Command-Tool框架 为什么我们要自己再设计一套App-Command框架,而不直接使用AO API中的AxControl-ICommand这套已经非常好的框架呢? ...

  3. ArcObjects SDK开发 006 ICommand和ITool接口

    1.ICommand接口 ICommand接口是插件协议之一,继承该接口的类都可以成为命令.即点击一下执行,不主动与宿主发生鼠标和键盘交互.该接口包含的重要成员如下表所示. 序号 名称 类型 描述 1 ...

  4. ArcObjects SDK开发 004 如何学习好ArcObjects SDK开发

    1.基于Arcobjects SDK可以做什么 基于Arcobjects SDK开发,大部分情况下就是做桌面GIS应用程序.AO写的代码是不能直接在Web服务上运行的,但如果你前端是JS,需要后端处理 ...

  5. ArcObjects SDK开发 003 宏观角度看ArcObjects SDK

    1.为什么要宏观上看ArcObjects SDK ArcObjects SDK库是一个非常庞大复杂COM组件集合,ArcGIS10.0有1000多个枚举.90多个结构体.5000多个接口以及4000多 ...

  6. ArcObjects SDK开发 002 写第一个ArcObjects SDK程序

    1.开发环境 基于ArcObjects SDK开发,开发环境一般选用Visual Studio,开发语言使用C#,开发包使用ArcObjects SDK for .Net.UI有的使用Winform, ...

  7. ArcObjects SDK开发 001 ArcObjects SDK 简介

    1.什么是ArcObjects SDK 在网上搜索什么是ArcObjects,会搜到如下的定义. 这个定义比较准确,也比较容易理解. 2.什么是ArcEngine 在网上搜索ArcEngine,一般会 ...

  8. ArcObjects SDK开发 008 从mxd地图文件说起

    1.Mxd文件介绍 ArcGIS的地图文件为.mxd扩展名.Mxd文件的是有版本的,和ArcGIS的版本对应.可以在ArcMap中的File-Save A Copy,保存一个地图拷贝的时候选择Mxd文 ...

  9. ArcObjects SDK开发 016 在ArcMap中使用Toolbox

    1.如何找到ToolBox 通过Geoprocessing菜单上的ArcToolbox菜单项,可以打开ArcToolbox面板. 工具栏上也有一个ArcToolbox的按钮,点击该按钮也可以打开. 通 ...

  10. ArcObjects SDK开发 017 在ArcObject SDK 中使用Toolbox

    1.Geoprocessor和IGPProcess Geoprocessor是ArcObjects SDK中定义Tool执行器.IGPProcess接口是ArcObjects SDK中定义的ArcTo ...

随机推荐

  1. linux防火墙查看状态firewall

    一.firewall防火墙 1.查看firewall服务状态 systemctl status firewalld 出现Active: active (running)切高亮显示则表示是启动状态. 出 ...

  2. 什么是VMware vSphere

    VMware vSphere不是特定的产品或软件.VMware vSphere是整个VMware套件的商业名称.VMware vSphere堆栈包括虚拟化,管理和界面层.VMware vSphere的 ...

  3. windows Oracle 11g安装图解教程

    安装以win7/10 64位系统为例1.将win64_11gR2_database_1of2和win64_11gR2_database_2of2解压到同个文件夹下合并(可以直接左键框住右键点击一起解压 ...

  4. 【Pandas】concat方法使用注意点

    使用pandas库的concat做数据拼接需要注意,应该先对原始数据设置列名,如果没有设置列名,在拼接时只会保留第一个文件的第一行(以列名形式),由于剩下的文件在读取时会自动将第一行作为列名,这样就会 ...

  5. [每日算法 - 华为机试] leetcode20 :有效的括号 「栈」

    入口 力扣https://leetcode.cn/problems/valid-parentheses/submissions/ 题目描述 给定一个只包括 '(',')','{','}','[','] ...

  6. AI穿上身:苹果手表如何改变你的生活?

    楔子:一个普通理工男的科技启示录 我是张三,一个标准的90后理工男.在这个日新月异的科技时代,我习惯用精密的逻辑和近乎机械的效率来审视世界.每天早上6点45分准时起床,每一分钟都被精确地规划,生活就像 ...

  7. 用于线程同步的Interlocked系列函数主要有哪些

    原子访问 通过Interlocked系列函数是 Windows API 提供的一组原子操作函数,用于在多线程环境中安全地操作共享变量.当我们执行这些Interlocked系列函数的时候 ,函数会对总线 ...

  8. 内部类--成员内部类、静态内部类、局部内部类--java进阶day03

    1.内部类 内部类分为4种,成员内部类用处不大,静态内部类和局部内部类更是鸡肋,唯有匿名内部类是需要我们重点掌握的 1.成员内部类 Inter类要访问Outer类的成员可以直接访问,而Outer要访问 ...

  9. 【JDBC第7章】DAO及相关实现类

    第7章:DAO及相关实现类 DAO:Data Access Object访问数据信息的类和接口,包括了对数据的CRUD(Create.Retrival.Update.Delete),而不包含任何业务相 ...

  10. 【JVM之内存与垃圾回收篇】本地方法栈

    本地方法栈 Java 虚拟机栈于管理 Java 方法的调用,而本地方法栈用于管理本地方法的调用. 本地方法栈,也是线程私有的. 允许被实现成固定或者是可动态扩展的内存大小.(在内存溢出方面是相同的) ...