Name

ST_Contains — Gibt TRUE zurück, wenn kein Punkt des Rasters "rastB" im Äußeren des Rasters "rastA" liegt und zumindest ein Punkt im Inneren von "rastB" auch im Inneren von "rastA" liegt.

Synopsis

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

boolean ST_Contains( raster rastA , raster rastB );

Beschreibung

Raster "rastA" enthält dann und nur dann "rastB", wenn sich kein Punkt von "rastB" im Äußeren des Rasters "rastA" befindet und zumindest ein Punkt im Inneren von "rastB" auch im Inneren von "rastA" 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]

Diese Funktion verwendet die für Raster verfügbaren Indizes.

[Note]

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

[Note]

ST_Contains() ist das Gegenstück zuf ST_Within(). Daher impliziert ST_Contains(rastA, rastB) ST_Within(rastB, rastA).

Verfügbarkeit: 2.1.0

Beispiele

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

Siehe auch

ST_Intersects, ST_Within