ST_Contains

Signature

BOOLEAN ST_Contains(GEOMETRY geomA, GEOMETRY geomB);

Description

Returns TRUE if geomA contains geomB.

Note

Implements the OpenGIS Simple Features Implementation Specification for SQL version 1.2.1

Warning

This predicate does not yet support spatial indices, but it will in a future release. Use it in conjunction with && operator. See here for more details.

Examples

Cases where ST_Contains is true

SELECT ST_Contains(geomA, geomB) FROM input_table;
-- Answer:    TRUE

geomA POLYGON

geomB POLYGON

POLYGON((1 1, 8 1, 8 7, 1 7, 1 1))

POLYGON((2 2, 7 2, 7 5, 2 5, 2 2))

geomA POLYGON

geomB POLYGON

POLYGON((1 1, 8 1, 8 7, 1 7, 1 1))

POLYGON((1 2, 6 2, 6 5, 1 5, 1 2))

geomA POLYGON

geomB LINESTRING

POLYGON((1 1, 8 1, 8 7, 1 7, 1 1))

LINESTRING(2 6, 6 2)

geomA POLYGON

geomB LINESTRING

POLYGON((1 1, 8 1, 8 7, 1 7, 1 1))

LINESTRING(1 2, 1 6, 5 2)

geomA POLYGON

geomB POINT

POLYGON((1 1, 8 1, 8 7, 1 7, 1 1))

POINT(4 4)

geomA LINESTRING

geomB LINESTRING

LINESTRING(2 1, 5 3, 2 6)

LINESTRING(3 5, 5 3)

geomA LINESTRING

geomB POINT

LINESTRING(2 1, 5 3, 2 6)

POINT(4 4)

Cases where ST_Contains is false

SELECT ST_Contains(geomA, geomB) FROM input_table;
-- Answer:    FALSE

geomA POLYGON

geomB POLYGON

POLYGON((1 1, 8 1, 8 7, 1 7, 1 1))

POLYGON((0 2, 5 2, 5 5, 0 5, 0 2))

geomA POLYGON

geomB LINESTRING

POLYGON((1 1, 8 1, 8 7, 1 7, 1 1))

LINESTRING(2 6, 0 8)

geomA POLYGON

geomB LINESTRING

POLYGON((1 1, 8 1, 8 7, 1 7, 1 1))

LINESTRING(1 2, 1 6)

geomA POLYGON

geomB POINT

POLYGON((1 1, 8 1, 8 7, 1 7, 1 1))

POINT(8 4)

geomA POLYGON

geomB POINT

POLYGON((1 1, 7 1, 7 7, 1 7, 1 1))

POINT(8 4)

See also