Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
测试某几何值是否在空间上被另一个几何值覆盖。
geometry-expression.ST_CoveredBy(geo2)
geo2
ST_Geometry
要与 geometry-expression 进行比较的另一个几何值。
BIT 如果 geometry-expression 覆盖 geo2 则返回 1,否则返回 0。
ST_CoveredBy 方法测试 geometry-expression 是否完全被 geo2 覆盖。
geometry-expression.ST_CoveredBy( geo2 ) 等效于 geo2.ST_Covers( geometry-expression )。
该谓语与 ST_Within 类似,二者仅有一个细微差别。ST_Within 谓语要求在 geo2 的内部存在一个或多个 geometry-expression 的内部点。对于 ST_CoveredBy(),无论两个几何的内部点是否相交,只要在 geo2 外部没有 geometry-expression 的点,此方法就会返回 1。ST_CoveredBy 可用于球形地球空间参照系中的几何。
如果 geometry-expression 包含圆弧线串,则将这些圆弧线串内插到线串中。
SQL/MM (ISO/IEC 13249-3: 2006) 服务商扩充
下面的示例测试点是否被多边形覆盖。点完全被多边形覆盖,所以示例返回 1。
SELECT NEW ST_Point( 1, 1 ) .ST_CoveredBy( NEW ST_Polygon( 'Polygon(( 0 0, 2 0, 1 2, 0 0 ))' ) )
下面的示例测试线是否被多边形覆盖。线完全被多边形覆盖,所以示例返回 1。如果使用 ST_Within 来代替 ST_CoveredBy,则 ST_Within 将返回 0。
SELECT NEW ST_LineString( 'LineString( 0 0, 1 0 )' ) .ST_CoveredBy( NEW ST_Polygon( 'Polygon(( 0 0, 2 0, 1 2, 0 0 ))' ) )
下面的示例列出了其中给定点位于 Shape 几何内的 ShapeID。此示例返回结果 [3,5,6]。请注意,尽管点仅与该行的 Shape 多边形在多边形边界相交,但仍列出了 ShapeID 6。
3,5,6
SELECT LIST( ShapeID ORDER BY ShapeID ) FROM SpatialShapes WHERE NEW ST_Point( 1, 4 ).ST_CoveredBy( Shape ) = 1