名前

ST_Contains — rastAの外にrastBの点が無く、rastAの内部にrastBの内部の点がひとつ以上ある場合にTRUEを返します。

概要

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

boolean ST_Contains( raster rastA , raster rastB );

説明

rastAの外にrastBの点が無く、rastAの内部にrastBの内部の点がひとつ以上ある場合に限って、rastAはrastBを包含しています。バンド番号が指定されていないかNULLに指定されている場合には、ラスタの凸包のみを考慮してテストします。バンド番号が指定されている場合には、値を持つ(NODATAでない)ピクセルについてテストします。

[注記]

この関数はラスタで利用できるインデクスを使用します。

[注記]

ラスタとジオメトリの空間関係をテストするには、ST_Contains(ST_Polygon(raster), geometry)またはST_Contains(geometry, ST_Polygon(raster))というふうに、ラスタにST_Polygonを使います。

[注記]

ST_Contains()はST_Within()の逆です。ST_Contains(rastA, rastB)はST_Within(rastB, rastA)を示します。

初出: 2.1.0

-- バンド番号指定
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
                        
-- バンド番号不指定
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