名称

ST_Within — 如果栅格 rastA 的所有点都不位于栅格 rastB 的外部,并且 rastA 内部至少有一个点位于 rastB 内部,则返回 true。

语法

boolean ST_Within( raster rastA , integer nbandA , raster rastB , integer nbandB );

boolean ST_Within( raster rastA , raster rastB );

说明

当且仅当 rastA 的所有点都不位于 rastB 的外部,并且 rastA 内部至少有一个点位于 rastB 内部时,rastA 位于 rastB 内。如果未提供波段号(或将其设置为 NULL),则在测试中只考虑栅格的凸包。如果提供了波段号,则在测试中只考虑具有值(非 NODATA)的那些像素。

[Note]

此操作数将使用栅格上可能存在的任何索引。

[Note]

要测试栅格和几何的空间关系,请对栅格使用 ST_Polygon,例如 ST_Within(ST_Polygon(raster), geometry) 或 ST_Within(geometry, ST_Polygon(raster))。

[Note]

ST_Within() 是 ST_Contains() 的逆运算。因此,ST_Within(rastA, rastB) 意味着 ST_Contains(rastB, rastA)。

可用性:2.1.0

示例

SELECT r1.rid, r2.rid, ST_Within(r1.rast, 1, r2.rast, 1) FROM dummy_rast r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;

 rid | rid | st_within
-----+-----+-----------
   2 |   1 | f
   2 |   2 | t
            

另请参阅

ST_IntersectsST_ContainsST_DWithinST_DFullyWithin