ST_ContainsProperly
ST_ContainsProperly returns true if both input geometries are nonempty, and all points of the 2D projection of the second geometry are interior points of the 2D projection of the first geometry.
Syntax
ST_ContainsProperly(geom1, geom2)
Arguments
- geom1
-
A value of data type
GEOMETRY
or an expression that evaluates to aGEOMETRY
type. The subtype can't beGEOMETRYCOLLECTION
. - geom2
-
A value of data type
GEOMETRY
or an expression that evaluates to aGEOMETRY
type. The subtype can't beGEOMETRYCOLLECTION
. This value is compared with geom1 to determine if all its points are interior points of geom1.
Return type
BOOLEAN
If geom1 or geom2 is null, then null is returned.
If geom1 and geom2 don't have the same value for the spatial reference system identifier (SRID), then an error is returned.
If geom1 or geom2 is a geometry collection, then an error is returned.
Examples
The following SQL returns the values of ST_Contains and ST_ContainsProperly where the input linestring intersects the interior and the boundary of the input polygon (but not its exterior). The polygon contains the linestring but doesn't properly contain the linestring.
WITH tmp(g1, g2) AS (SELECT ST_GeomFromText('POLYGON((0 0,10 0,10 10,0 10,0 0))'), ST_GeomFromText('LINESTRING(5 5,10 5,10 6,5 5)')) SELECT ST_Contains(g1, g2), ST_ContainsProperly(g1, g2) FROM tmp;
st_contains | st_containsproperly
-------------+---------------------
t | f