名称

ST_Contains — 如果栅格 rastB 的任何点都不在栅格 rastA 的外部,并且 rastB 内部的至少一个点在 rastA 的内部,则返回 true。

概要

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

boolean ST_Contains( raster rastA , raster rastB );

描述

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

[Note]

此函数将利用栅格上可能存在的任何索引。

[Note]

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

[Note]

ST_Contains() 与 ST_Within() 相反。因此,ST_Contains(rastA, rastB) 意味着 ST_Within(rastB, rastA)。

可用性:2.1.0

示例

-- specified band numbers
SELECT r1.rid, r2.rid, ST_Contains(r1.rast, 1, r2.rast, 1) FROM dummy_rast r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 1;

NOTICE:  The first raster provided has no bands
 rid | rid | st_contains
-----+-----+-------------
   1 |   1 |
   1 |   2 | f
            
-- no band numbers specified
SELECT r1.rid, r2.rid, ST_Contains(r1.rast, r2.rast) FROM dummy_rast r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 1;
 rid | rid | st_contains
-----+-----+-------------
   1 |   1 | t
   1 |   2 | f
            

另请参阅

ST_Intersects, ST_Within