名前

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) を示します。

Availability: 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