空间过滤器空间关系类型主要有以下几种类型如表一所示:
表1
1, esriSpatialRelTouches(邻接)
应用范围:
除点与点之间的关系外,其它的要素之间都可以具有该关系。
描述:
如果二个要素有相同的边界,且它们内部不相交的话,称这二个要素之间的关系是邻接的关系,图1-1、2-1、3-1、3-2,注意图3-3中点与线是包涵的关系。
当查询要素和被查询要素具有该关系时,即spatialRel的值是esriSpatialRelTouches,则会返回查询要素。
2, esriSpatialRelCrosses (交叉)
应用范围:
线与面,线与线等。不能用于面与面(面与面相交部分是面,不能二个要素中的最高维数低一),面与点,点与线(二个要素的维数差2)。
描述:
如果二个要素的相交部分不为空,并且相交部分形状的维数比两个要素中最高维数低1(即线面交叉是线,线线交叉是点)则称这二个要素具有交叉关系,图2-4、4-1,图2-1中中二条线的关系属于邻接关系,而不属于交叉关系,因为它们的内部相交部分为空。
当查询要素和被查询要素具有该关系时,即spatialRel的值是esriSpatialReCrosses,则会返回查询要素。
3, esriSpatialRelOverlaps(重叠关系)
应用范围:
线与线,面与面之间,其它的不具有该关系。
描述:
二个同维的要素之间的相交部分的图形具有与这二个要素相同的维数的,且不与任何一个要素完全相同,则称这二个要素重叠。图1-2、2-2均是重叠关系,但是2-3中的二条线不是重叠关系,因为相交的部分与黄色的线完全相同。
当查询要素和被查询要素具有该关系时,即spatialRel的值是esriSpatialRelOverlaps,则会返回查询要素。
4,esriSpatialRelWithin和esriSpatialRelContains (包涵)
应用范围:
所有要素类之间均具有该关系。
描述:
该关系可细分为一个要素完全位于另一个要素的内部和一个要素完全包涵另外一个要素,它们是相对的关系。如果说要素1完全位于要素2的内部,则要素2完全包涵要素1。
当查询的要素完全位于被查询的要素内部的话(即spatialRel的值是esriSpatialRelWithin),则返回被查询的要素;同时如果查询的要素完全被被查询的要素包括时(即spatialRel的值是esriSpatialRelcontains)则返回被查询的要素。
描述:
相交关系是一个广义的关系,包括上述4种关系。因此如果spatialRel的值是
esriSpatialRelIntersects关系的话,只要查询要素和被查询要素之间满足上述四种空间关系的任一种空间关系,即可返回被查询的要素。
6,esriSpatialRelRelate
描述:
需要通过SpatialRelDescription属性对二个要素的空间关系进行定制,可以对二个要素的内部,外部,边界之间的相交的情况进行描述,例如:字符串'****T***'代表的是二个要素共享边界。