ArcObjects SDK 018 Geometry
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的更多相关文章
- ArcObjects SDK(AE)10.1在vs2012安装的方法
ArcObjects SDK(以下简称AO)10.1只支持vs2010,如果装了vs2012,再安装AO会提示一串鸡肠(英文),意思是AO10.1只支持vs2010 想在2012下安装,可以通过修改注 ...
- ArcObjects SDK开发 007 自定义App-Command-Tool框架
1.为什么再设计一套App-Command-Tool框架 为什么我们要自己再设计一套App-Command框架,而不直接使用AO API中的AxControl-ICommand这套已经非常好的框架呢? ...
- ArcObjects SDK开发 006 ICommand和ITool接口
1.ICommand接口 ICommand接口是插件协议之一,继承该接口的类都可以成为命令.即点击一下执行,不主动与宿主发生鼠标和键盘交互.该接口包含的重要成员如下表所示. 序号 名称 类型 描述 1 ...
- ArcObjects SDK开发 004 如何学习好ArcObjects SDK开发
1.基于Arcobjects SDK可以做什么 基于Arcobjects SDK开发,大部分情况下就是做桌面GIS应用程序.AO写的代码是不能直接在Web服务上运行的,但如果你前端是JS,需要后端处理 ...
- ArcObjects SDK开发 003 宏观角度看ArcObjects SDK
1.为什么要宏观上看ArcObjects SDK ArcObjects SDK库是一个非常庞大复杂COM组件集合,ArcGIS10.0有1000多个枚举.90多个结构体.5000多个接口以及4000多 ...
- ArcObjects SDK开发 002 写第一个ArcObjects SDK程序
1.开发环境 基于ArcObjects SDK开发,开发环境一般选用Visual Studio,开发语言使用C#,开发包使用ArcObjects SDK for .Net.UI有的使用Winform, ...
- ArcObjects SDK开发 001 ArcObjects SDK 简介
1.什么是ArcObjects SDK 在网上搜索什么是ArcObjects,会搜到如下的定义. 这个定义比较准确,也比较容易理解. 2.什么是ArcEngine 在网上搜索ArcEngine,一般会 ...
- ArcObjects SDK开发 008 从mxd地图文件说起
1.Mxd文件介绍 ArcGIS的地图文件为.mxd扩展名.Mxd文件的是有版本的,和ArcGIS的版本对应.可以在ArcMap中的File-Save A Copy,保存一个地图拷贝的时候选择Mxd文 ...
- ArcObjects SDK开发 016 在ArcMap中使用Toolbox
1.如何找到ToolBox 通过Geoprocessing菜单上的ArcToolbox菜单项,可以打开ArcToolbox面板. 工具栏上也有一个ArcToolbox的按钮,点击该按钮也可以打开. 通 ...
- ArcObjects SDK开发 017 在ArcObject SDK 中使用Toolbox
1.Geoprocessor和IGPProcess Geoprocessor是ArcObjects SDK中定义Tool执行器.IGPProcess接口是ArcObjects SDK中定义的ArcTo ...
随机推荐
- Code Runner MCP Server,来了!
大家好!我是韩老师. 如果作为程序员的你,还不了解 MCP (Model Context Protocol) 的话,那韩老师劝你赶紧去补补课吧! 本文不对 MCP 进行详细介绍~ 简单来说,MCP i ...
- BUUCTF---bbbbbras
题目 p = 177077389675257695042507998165006460849 n = 3742182950988779627489716224936732940098864714561 ...
- BUUCTF--传统知识+古典密码
1.题目 2.知识点 传统知识,天地干支 古典密码:栅栏密码和凯撒密码 3.解题 由天干地支表解题对应,28,30,23,8,17,10,16,30,"+甲子"代表+60 所以得出 ...
- MQ 如何保证数据一致性?
前言 上个月,我们有个电商系统出了个灵异事件:用户支付成功了,但订单状态死活不改成"已发货". 折腾了半天才定位到问题:订单服务的MQ消息,像人间蒸发一样消失了. 这个Bug让我明 ...
- 【SpringCloud】各种组件的更新情况
关于Cloud各种组件的停更/升级/替换 由停更引发的"升级惨案" 停更不停用 被动修复bugs 不再接受合并请求 不再发布新版本 以前 now2020 服务注册中心 Eureka ...
- 线程,yield()
一.定义:暂停当前正在执行的线程对象,并执行其他线程 yield()应该做的是让当前运行线程回到可运行状态,以允许具有相同优先级的其他线程获得运行机会. 因此,使用yield()的目的是让相同优先级的 ...
- 数据处理与任务调度的双引擎:ETL工具PDI与DPDI调度管理工具的全面剖析
ETL工具PDI及调度DPDI ETL流程解析 数据抽取(Extract) 抽取是ETL的起点,需连接多种数据源获取原始数据.如从关系型数据库提取销售记录,或从文本文件读取客户信息,为后续处理奠定基础 ...
- devops组件搭配选型
名称 作用 备注 sentry 异常捕获系统 gitlab 代码仓库 jenkins 持续集成 open-falcon 监控系统 grafana 监控FE prometheus 监控系统 thanos ...
- 【漏洞扫描】Nuclei v3.4.1 下载方法(附快速下载链接)
简介 Nuclei v3.4.1是一款强大的漏洞扫描器,并且拥有社区维护的海量漏洞POC,工具质量十分的高.Nuclei 用于基于模板跨目标发送请求,从而实现零误报并提供对大量主机的快速扫描.Nucl ...
- 工具 | ysoSimple
0x00 简介 ysoSimple是一款简易的Java漏洞利用工具,集成Java反序列化,Hessian反序列化,XStream反序列化,SnakeYaml反序列化,Shiro550,JSF反序列化, ...