IPoint point = new PointClass();
point.PutCoords(, ); //ITopologicalOperator接口用于几何对象的几何操作
ITopologicalOperator topo = point as ITopologicalOperator;
//做一个几何对象的缓冲区(结果也是个几何对象),参数1是缓冲半径
//点线面的缓冲区都是面,所以可以直接as到IPolygon
IPolygon polygon = topo.Buffer() as IPolygon; ITopologicalOperator2 topo2 = point as ITopologicalOperator2;
//错误几何对象的修复,如果当几何对象有几何错误,例如面有自相交,可以用此修复
topo2.IsKnownSimple_2 = false;
topo2.Simplify(); topo = polygon as ITopologicalOperator;
//获取面的边,面的边是线
IPolyline polyline = topo.Boundary as IPolyline; IPolygon polygon2 = new PolygonClass(); topo = polygon as ITopologicalOperator;
//求两个几何对象的重叠部分
//两个几何对象的重叠部分,可以有很多种几何类型组合,例如面与面重叠是面,线与线重叠是线或者点,点与点重叠是点,点与面重叠是点,线与面重叠是线等等
//参数2是返回结果是多少维的意思,根据经验如果返回结果是点就是0维(esriGeometry0Dimension),线就是1维,面就是2维
//官方文档还有详细说明,使用者要结合文档和实际使用情况相互对照来学习
IGeometry geometry3 = topo.Intersect(polygon2, esriGeometryDimension.esriGeometry2Dimension); //两个几何对象的几何操作还有:
//Union 求两个几何对象合并后的,也就是求并集
//Clip 裁剪
//Cut 用线把面一份为二
//Difference 擦除 //IRelationalOperator用于判断两个几何对象的空间关系
//IRelationalOperator的每种空间关系在官方文档有具体截图
IRelationalOperator relaOper = polygon as IRelationalOperator;
//求两个几何对象是否有重叠部分,注意:Overlaps判断的两个几何对象的几何类型必须相同
bool result = relaOper.Overlaps(polygon2); //其他空间关系判断有:
//Contains-完全包含
//Crosses-穿过?
//Disjoint-完全不相交
//Equals-完全重叠(就是两个几何对象完全一样,常用!!!!!)
//Touches-边沿重叠?
//Within-完全包含2 IPoint point2 = new PointClass();
point.PutCoords(, ); //计算两点距离
double distance = GeometryHelper.TwoPointDistance(point, point2);

Arcgis Engine(ae)接口详解(5):IGeometry几何高级操作的更多相关文章

  1. JDBC常用接口详解

    JDBC中常用接口详解 ***DriverManager 第一.注册驱动 第一种方式:DriverManager.registerDriver(new com.mysql.jdbc.Driver()) ...

  2. Java6.0中Comparable接口与Comparator接口详解

    Java6.0中Comparable接口与Comparator接口详解 说到现在,读者应该对Comparable接口有了大概的了解,但是为什么又要有一个Comparator接口呢?难道Java的开发者 ...

  3. socket接口详解

    1. socket概述 socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信. socket起源于UNIX,在Unix一切 ...

  4. “全栈2019”Java第八十四章:接口中嵌套接口详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  5. “全栈2019”Java第八十三章:内部类与接口详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  6. Java接口 详解(二)

    上一篇Java接口 详解(一)讲到了接口的基本概念.接口的使用和接口的实际应用(标准定义).我们接着来讲. 一.接口的应用—工厂设计模式(Factory) 我们先看一个范例: package com. ...

  7. [转载]MII/MDIO接口详解

    原文地址:MII/MDIO接口详解作者:心田麦浪 本文主要分析MII/RMII/SMII,以及GMII/RGMII/SGMII接口的信号定义,及相关知识,同时本文也对RJ-45接口进行了总结,分析了在 ...

  8. map接口详解

    1.Map接口详解(1)映射(map)是一个存储键.键值对的对象,给定一个键,可以查询得到它的值,键和值都可以是对象(2)键必须是唯一的,值可以重复(Map接口映射唯一的键到值)(3)有些映射可以接收 ...

  9. ReadWriteLock 接口详解

    ReadWriteLock 接口详解 这是本人阅读ReadWriteLock接口源码的注释后,写出的一篇知识分享博客 读写锁的成分是什么? 读锁 Lock readLock(); 只要没有写锁,读锁可 ...

随机推荐

  1. angular 创建项目

    介绍有很多可用的工具可以帮助你开发AngularJS 应用,那些非常复杂的框架不在我的讨论范围之中,这也是我开始这系列教程的原因.在第一部分,我们掌握了angularjs框架的基本结构,开发了第一应用 ...

  2. Linux rm删除

    将 test1子目录及子目录中所有档案删除 命令: rm -r test1 rm -rf test2命令会将 test2 子目录及子目录中所有档案删除,并且不用一一确认 命令: rm -rf  tes ...

  3. BZOJ 2820 YY的GCD ——莫比乌斯反演

    我们可以枚举每一个质数,那么答案就是 $\sum_{p}\sum_{d<=n}\mu(d)*\lfloor n / pd \rfloor *\lfloor m / pd \rfloor$ 直接做 ...

  4. 洛谷P3097 - [USACO13DEC]最优挤奶Optimal Milking

    Portal Description 给出一个\(n(n\leq4\times10^4)\)个数的数列\(\{a_n\}(a_i\geq1)\).一个数列的最大贡献定义为其中若干个不相邻的数的和的最大 ...

  5. HashMap构造函数有哪些

    hashMap有4个构造函数: public HashMap(int initialCapacity, float loadFactor) public HashMap(int initialCapa ...

  6. jenkins执行自动化用例(详细、有用、mark 优先级高高高)

    http://blog.sina.com.cn/s/blog_68f262210102vx8o.html 第七章 测试用例接入jenkins自动运行 ------Web自动化测试之Webdriver+ ...

  7. poj 1486 Sorting Slides

    Sorting Slides Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 4469   Accepted: 1766 De ...

  8. UVa10539

    http://vjudge.net/problem/UVA-10539 先打出来sqrt(n)以内的素数表,然后对于每个素数x,他对答案的贡献就是最大的p使x^p<=n,即log(x,n).注意 ...

  9. zoj 3822 Domination(2014牡丹江区域赛D题) (概率dp)

    3799567 2014-10-14 10:13:59                                                                     Acce ...

  10. idea 自定义工具栏

    问题:在笔记本上面使用idea的时候,有时候,需要使用 Ctrl+Alt+左箭头 /  Ctrl+Alt+右箭头 跳转到 上一次,查看代码的问题,然而存在快捷冲突的时候,很蛋疼.下面是解决办法. 效果 ...