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. js 获取json对象的Key、value

    <script type="text/javascript"> getJson('age'); function getJson(key){ var jsonObj={ ...

  2. pytorch保存模型等相关参数,利用torch.save(),以及读取保存之后的文件

    本文分为两部分,第一部分讲如何保存模型参数,优化器参数等等,第二部分则讲如何读取. 假设网络为model = Net(), optimizer = optim.Adam(model.parameter ...

  3. 九度oj 1547

    题目描述: 给定一个初始为空的栈,和n个操作组成的操作序列,每个操作只可能是出栈或者入栈. 要求在操作序列的执行过程中不会出现非法的操作,即不会在空栈时执行出栈操作,同时保证当操作序列完成后,栈恰好为 ...

  4. Spoj-BGSHOOT

    The problem is about Mr.BG who is a great hunter. Today he has gone to a dense forest for hunting an ...

  5. Linux之VMware虚拟机取消DHCP

    1.点击编辑项 2.选择VMnet1  点击更改设置 3.选择VMnet1 去掉使用本地DHCP服务  点击应用 原文地址:https://blog.csdn.net/star_in_shy/arti ...

  6. Nk 1214 Relatives(欧拉函数)

    Time Limit: 1500 ms    Memory Limit: 10000 kB   Total Submit : 234 (77 users)   Accepted Submit : 10 ...

  7. Codevs 2956 排队问题

    2956 排队问题 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题目描述 Description 有N个学生去食堂,可教官规定:必须2人或3人组成一组,求有多少种不 ...

  8. Dreamweaver8中文版视频教程 [爱闪教程]Dreamweaver8中文版

    原文发布时间为:2008-07-30 -- 来源于本人的百度文章 [由搬家工具导入] http://www.176net.com/shipin/UploadFiles_1476/teach1/%5B% ...

  9. Python3:urllib模块的使用

    Python3:urllib模块的使用1.基本方法 urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=N ...

  10. Java开发笔记(一百零一)通过加解锁避免资源冲突

    前面介绍了如何通过线程同步来避免多线程并发的资源冲突问题,然而添加synchronized的方式只在简单场合够用,在一些高级场合就暴露出它的局限性,包括但不限于下列几点:1.synchronized必 ...