Name

ST_Contains — Retourne true si aucun point du raster rastB ne se trouve à l'extérieur du raster rastA et si au moins un point de l'intérieur du raster rastB se trouve à l'intérieur du raster rastA.

Synopsis

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

boolean ST_Contains( raster rastA , raster rastB );

Description

Le raster rastA contient rastB si et seulement si aucun point de rastB ne se trouve à l'extérieur de rastA et si au moins un point de l'intérieur de rastB se trouve à l'intérieur de rastA. Si le numéro de bande n'est pas spécifié (ou si NULL), seule l'enveloppe convexe du raster est prise en compte dans le test. Si un numéro de bande est spécifié, seuls les pixels ayant une valeur (différente de NODATA) sont pris en compte dans le test.

[Note]

Cette fonction utilisera tous les index qui peuvent être disponibles sur les données raster.

[Note]

Pour tester la relation spatiale entre un raster et une géométrie, utilisez ST_Polygon sur le raster, par exemple ST_Contains(ST_Polygon(raster), geometry) ou ST_Contains(geometry, ST_Polygon(raster)).

[Note]

ST_Contains() est l'inverse de ST_Within(). Ainsi, ST_Contains(rastA, rastB) implique ST_Within(rastB, rastA).

Disponibilité : 2.1.0

Exemples

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

Voir aussi

ST_Intersects, ST_Within