Dimensionally Extended Nine-Intersection Model (DE-9IM)

    技术2025-05-04  22

    转自http://classicning.javaeye.com/blog/107261

     

     

     

    DE-9IMThe Dimensionally Extended Nine-Intersection Model要使用DE-9IM首先要建立几何对象的interiorboundaryexterior。首先boundary是指对几何进行一次降维之后得到对象,举例来说一个点的boundary为空,未封闭的线的boundary为其两个端点,封闭线的boundary为空,多边形的boundary为它的环状边界。interior是指几何对象的边界被移除之后剩下的部分。exterior则是指不在boundaryinterior中点构成的几何对象。约定:以I(a)B(a)E(a)表示几何对象ainteriorboundaryexterior,以dim(a)表示几何对象的维度,在二维空间中他的取值为{-1, 0, 1, 2},其中-1代表空。为了便于表示,用下面一些符号来表示取值的集合:T : {0, 1, 2}F : {-1}* : {-1, 0, 1, 2}0 : {0}1 : {1}2 : {2}那么就可以用这样一个矩阵来判断几何对象ab的位置关系:

     

    Interior

    Boundary

    Exterior

    Interior

    dim(I(a)∩I(b))

    dim(I(a)∩B(b))

    dim(I(a)∩E(b))

    Boundary

    dim(B(a)∩I(b))

    dim(B(a)∩B(b))

    dim(B(a)∩E(b))

    Exterior

    dim(E(a)∩I(b))

    dim(E(a)∩B(b))

    dim(E(a)∩E(b))

     

    另外,将零维对象简写为P,一维对象简写为L,二维对象简写为A根据这个矩阵的值可以构造一个字符串,这个字符串称为IntersectionPattern。另外JTS中的IntersectionMatrix也封装了这个矩阵。以下是几个预定义的空间关系Equal 两个几何对象完全相同,它的定义表示为DE-9IM"TFFFTFFFT"Disjoint 两个对象的边界和内部都没有任何公共部分,表示为DE-9IM"FF*FF****"Intersection Disjoint取反Touches 简单地说Touches表示两个对象的边缘相接触,这个关系是以下几类几何对象间特有的:A/A, L/L, L/A, P/A ,P/L。用DE-9IM表示,可以为"FT*******", "F**T*****""F***T****"Crosses Crosses表示一个对象穿过另一个对象,它应用于P/L, P/A, L/LL/A之间。用DE-9IM表示为:"T*T******"P/L, P/A,L/A),"0********"L/LWithin 包含于。DE-9IM表示:"T*F**F***"Overlaps 相叠,应用于A/A, L/L P/P之间。DE-9IM"T*T***T**"A/A, P/P),"1*T***T**"L/LContains 包含,对立于WithinJTSGeometry类实现了以上的所有方法,而由于这些方法不能表示全部的空间位置关系,因此OGCSimple Feature SpecificationJTS都提供了一个relate方法,用来测试指定的DE-9IM关系。

     

     

    更多参考资料:

     

    http://gis.hsr.ch/wiki/images/3/3d/9dem_springer.pdf

    http://edndoc.esri.com/arcsde/9.1/general_topics/understand_spatial_relations.htm

     

    最新回复(0)