Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
测试某几何值是否与另一个几何值重叠。
geometry-expression.ST_Overlaps(geo2)
geo2
ST_Geometry
要与 geometry-expression 进行比较的另一个几何值。
BIT 如果 geometry-expression 与 geo2 重叠则返回 1,否则返回 0。如果 geometry-expression 与 geo2 具有不同的维度,则返回 NULL。
如果满足以下所有条件,则两个几何重叠:
两个几何具有相同的维度。
geometry-expression 和 geo2 几何的交集与 geometry-expression 具有相同的维度。
两个原始几何中的任一几何都不是另一几何的子集。
更确切地说,当以下条件为 TRUE 时,geometry-expression.ST_Overlaps( geo2 ) 返回 1:
geometry-expression.ST_Dimension() = geo2.ST_Dimension() AND geometry-expression.ST_Intersection( geo2 ).ST_Dimension() = geometry-expression.ST_Dimension() AND geometry-expression.ST_Covers( geo2 ) = 0 AND geo2.ST_Covers( geometry-expression ) = 0
如果 geometry-expression 包含圆弧线串,则将这些圆弧线串内插到线串中。
此方法无法用于球形地球空间参照系中的几何。
SQL/MM (ISO/IEC 13249-3: 2006) 5.1.32
由于两个线串的交集仍是线串,且任一几何都不是另一几何的子集,所以以下示例返回结果 [1]。
1
SELECT NEW ST_LineString( 'LineString( 0 0, 5 0 )' ) .ST_Overlaps( NEW ST_LineString( 'LineString( 2 0, 3 0, 3 3 )' ) )
由于线串和点具有不同维度,所以以下示例返回结果 [NULL]。
NULL
SELECT NEW ST_LineString( 'LineString( 0 0, 5 0 )' ) .ST_Overlaps( NEW ST_Point( 1, 0 ) )
由于该点是多点的子集,所以以下示例返回结果 [0]。
0
SELECT NEW ST_MultiPoint( 'MultiPoint(( 2 3 ), ( 1 0 ))' ) .ST_Overlaps( NEW ST_Point( 1, 0 ) )
以下示例返回结果 [24,25,28,31],所列结果是与指定多边形重叠的 ShapeID。
24,25,28,31
SELECT LIST( ShapeID ORDER BY ShapeID ) FROM SpatialShapes WHERE Shape.ST_Overlaps( NEW ST_Polygon( 'Polygon(( -1 0, 0 0, 0 1, -1 1, -1 0 ))' ) ) = 1