当前位置:网站首页>[转]ArcGIS中判断两个Geometry之间的关系
[转]ArcGIS中判断两个Geometry之间的关系
2022-07-26 10:34:00 【WindOfMayGIS】
[转]ArcGIS中判断两个Geometry之间的关系
操作两个Geometry时,常用的接口是ITopologicalOperator,比如clip,Intersect,Union,cut等。
当判断两个Geometry之间的拓扑关系式,用IRelationalOperator ,它有Contains、Crosses、Disjoint、Equals、Overlaps、Within、Touches等方法。
示例:
- ITopologicalOperator sourcePolygon= (ITopologicalOperator)outerPolygon;
- IPolygon resultPolygon = (IPolygon)sourcePolygon.Difference(cutPolygons);
- IRelationalOperator re = (IRelationalOperator)outerPolygon;
- if (!re.Contains(inPolygon))
- {
- throw new Exception("abcdefg");
- }
在进行这两个接口的运算前要注意下,如果参加运算的两个Geometry对象不是简单对象时,(注1:Simple对象,见下图)(注2:可以用ITopologicalOperator接口的IsSimple函数进行判断)(注3:当使用IPointCollection等接口生成或编辑的Geometry对象比较常出现这种情况),运算有可能会出错,并得不出想要的结果,这时需要对其进行处理:
- ((ITopologicalOperator)outerPolygon).Simplify();
简单对象的定义及处理
附1:ITopologicalOperator的一些函数示意:
方法名称 | 说明 |
Boundary | 几何图形对象的边界 |
Buffer | 对几何图形对象进行缓冲区空间拓扑操作 |
Clip | 对几何图形对象进行裁剪空间拓扑操作 |
ConstructUnion | 高效的合并多个枚举几何对象与单个几何对象合并为单个几何对象,这对于大量几何对象的合并非常高效 |
ConvexHull | 构建几何对象的凸边形 |
Cut | 切割几何对象 |
Difference | 一个几何图形减去它与另一个几何图形相交的部分 |
Intersect | 两个同维度几何对象的交集部分 |
Simplify | 使几何对象拓扑一致 |
SymmetricDifference | 对称差分将两个几何图形的并集部分减去两个几何图形交集的部分 |
Union | 合并两个同维度的几何对象为单个几何对象 |
图解:
http://www.gisjc.com/a/ArcGIS_Engine/2010/0425/239.html
附2:IRelationalOperator的一些关系类型:
关系类型 | 描述 |
Contains | 判断一个图形是否包含另外一个图形 |
Within | 判断一个图形是否被另外一个图形所包含。 |
Crosses | 判断两个图形是否在维数较少的那个图形的内部相交 |
Disjoint | 判断两个图形间是否没有相同点 |
Equals | 判断两个图形是否是同一个类型并且在平面上的点是否是相同的位置。如果返回值为真,则它们应该包含(Contains)另外一个图形同时也被另外一个图形所包含(Within)。 |
Overlaps | 判断两个图形的交集是否和其中的一个图形拥有相同的维数,并且他们交集不能和其中任何一个图形相等。该方法只使用与两个Polyline 之间或者两个Polygon 之间。 |
Touch | 判断两个图形的边界是否相交,如果两个图形的交集不为空,但两个图形内部的交集为空,则返回值为真。 |
边栏推荐
- Closure of go (cumulative sum)
- js 获得当前时间,时间与时间戳的转换
- Introduction to Phoenix (Level 1: Phoenix installation, level 2: Phoenix basic grammar)
- [Halcon vision] image filtering
- [leetcode每日一题2021/2/14]765. 情侣牵手
- 函数模板参数(函数参数在哪)
- uniapp使用简单方法signalR(仅用于web调试,无法打包app)
- 多目标优化系列1---NSGA2的非支配排序函数的讲解
- 第4期:大学生提前职业技能准备之一
- [Halcon vision] polar coordinate transformation
猜你喜欢
码云,正式支持 Pages 功能,可以部署静态页面
Introduction to data analysis | kaggle Titanic mission
Uniapp uses the simple method signalr (only for web debugging, cannot package apps)
GIS方法类期刊和论文的综述(Introduction)怎么写?
Problems encountered in QRcode QR code (C language)
SAP ABAP Netweaver 容器化的一些前沿性研究工作分享
oracle 启动不了 tnslistener服务启动不了
STM32 Alibaba cloud mqtt esp8266 at command
The problem of large fluctuation of hx711 data
[Halcon vision] programming logic
随机推荐
常见的类(了解)
.NET 开源框架在工业生产中的应用
404页面和路由钩子
[Halcon vision] image filtering
Parallelism, concurrency and several directions for high concurrency optimization
Comparison of packet capturing tools fiddler and Wireshark
PLC overview
第7期:内卷和躺平,你怎么选
【机器学习小记】【搭建循环神经网络及其应用】deeplearning.ai course5 1st week programming(keras)
Agenda express | list of sub forum agenda on July 27
.net operation redis hash object
[Halcon vision] polar coordinate transformation
10 令 operator= 返回一个 reference to *this
Mlx90640 infrared thermal imager temperature sensor module development notes (VI) pseudo color coding of infrared images
[Halcon vision] image filtering
.net operation redis string string
关于函数模板描述错误的是(链接格式错误怎么解决)
GIS方法类期刊和论文的综述(Introduction)怎么写?
[leetcode每日一题2021/8/30]528. 按权重随机选择【中等】
单元测试,到底什么是单元测试,为什么单测这么难写