Name

ST_Contains — Returnerar true om inga punkter i raster rastB ligger i raster rastA:s exteriör och minst en punkt i rastB:s interiör ligger i rastA:s interiör.

Synopsis

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

boolean ST_Contains( raster rastA , raster rastB );

Beskrivning

Raster rastA innehåller rastB om och endast om inga punkter i rastB ligger i rastA:s utsida och minst en punkt i rastB:s insida ligger i rastA:s insida. Om bandnumret inte anges (eller sätts till NULL), beaktas endast rastrets konvexa skrov i testet. Om bandnumret anges är det endast de pixlar som har ett värde (inte NODATA) som beaktas i testet.

[Note]

Denna funktion kommer att använda alla index som kan finnas tillgängliga på rastren.

[Note]

Om du vill testa det spatiala förhållandet mellan ett raster och en geometri använder du ST_Polygon på rastret, t.ex. ST_Contains(ST_Polygon(raster), geometry) eller ST_Contains(geometry, ST_Polygon(raster)).

[Note]

ST_Contains() är inversen av ST_Within(). Så ST_Contains(rastA, rastB) innebär ST_Within(rastB, rastA).

Tillgänglighet: 2.1.0

Exempel

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