『公告』 预祝您龙年大吉,万事如意, 过节期间, 大家如需数据服务,请拨打400 或直接添加客服微信,再祝大家龙年,心想事成。
关注我们 新浪 腾讯

ArcGIS二次开发-如何判断图形间的逻辑运算

ArcGIS二次开发-如何判断图形间的逻辑运算
本小节以 Polyline(Polygon 类似)为例, 讲解如何判断图形间的逻辑关系,主要用到的接口是 IRelationalOperator。 

       在本例中,使用 Relational Operator 对两个图形进行比较,返回一个布尔值来指出这两个图形间是否存在特定的关系。一些关系的判断是要求两个图形要有相同的维数的(如必须 Polyline 之间或 Polygon 之间),而另外一些对图形维数就没有太多限制。大多数已定义的关系操作符是互斥的。RelationalOperator的具体方法有: 

       Contains:判断一个图形是否包含另外一个图形。 
       Within:判断一个图形是否被另外一个图形所包含。 
       Crosses:判断两个图形是否在维数较少的那个图形的内部相交。 
       Disjoint:判断两个图形间是否没有相同点。 
       Equals:判断两个图形是否是同一个类型并且在平面上的点是否是相同的位置。如果返回值为真,则它们应该包含(Contains)另外一个图形同时也被另外一个图形所包含(Within)。 
       Overlaps:判断两个图形的交集是否和其中的一个图形拥有相同的维数,并且他们交集不能和其中任何一个图形相等。该方法只使用与两个Polyline之间或者两个Polygon之间。

       Touch:判断两个图形的边界是否相交,如果两个图形的交集不为空,但两个图形内部的交集为空,则返回值为真。 
       下图为几个图形的边界(Boundary)和内部(Interior)概念的图解: 


       下面针对较易混淆的两个概念, Crosses 和 Touch 进行举例说明(Polyline/Polyline): 

      首先创建两条 Polyline:pLine1,pLine2,然后对这两条 Polyline 进行各种逻辑运算。针对不同的逻辑运算创建不同位置的 Polyline 以进行验证。 






      京ICP备2025132830号-1 京公网安备 号