Name

ST_Within — Gibt TRUE zurück, wenn kein Punkt des Rasters "rastA" außerhalb des Rasters "rastB" liegt und zumindest ein Punkt im Inneren von "rastA" auch im Inneren von "rastB" liegt.

Synopsis

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

boolean ST_Within( raster rastA , raster rastB );

Beschreibung

Raster "rastA" liegt dann und nur dann "within"/innerhalb von "rastB", wenn sich kein Punkt von "rastA" im Äußeren des Rasters "rastB" befindet und zumindest ein Punkt im Inneren von "rastA" auch im Inneren von "rastB" liegt. Wenn die Bandnummer nicht angegeben ist (oder auf NULL gesetzt), dann wird nur die konvexe Hülle des Rasters zur Überprüfung herangezogen. Wenn die Bandnummer angegeben ist, werden nur die Pixel mit einem Wert (nicht NODATA) bei der Überprüfung herangezogen.

[Note]

Dieser Operand benützt jeden Index, der für den Raster zur Verfügung stellt.

[Note]

Um die räumliche Beziehung zwischen einem Raster und einer Geometrie zu überprüfen, verwenden Sie bitte ST_Polygon für den Raster, z.B. ST_Within(ST_Polygon(raster), geometry) or ST_Within(geometry, ST_Polygon(raster)).

[Note]

ST_Within() ist die Umkehrfunktion von ST_Contains(). Es gilt daher: ST_Within(rastA, rastB) impliziert ST_Contains(rastB, rastA).

Verfügbarkeit: 2.1.0

Beispiele

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