Name

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

Synopsis

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

boolean ST_Within( raster rastA , raster rastB );

Description

Le raster rastA est compris dans rastB si et seulement si aucun point de rastA ne se trouve à l'extérieur de rastB et si au moins un point de l'intérieur de rastA se trouve à l'intérieur de rastB. 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 le 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]

Cet opérande 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_Within(ST_Polygon(raster), geometry) ou ST_Within(geometry, ST_Polygon(raster)).

[Note]

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

Disponibilité : 2.1.0

Exemples

SELECT r1.rid, r2.rid, ST_Within(r1.rast, 1, r2.rast, 1) FROM dummy_rast r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;

 rid | rid | st_within
-----+-----+-----------
   2 |   1 | f
   2 |   2 | t