Skip to main content

ST_CoveredBy

Tests whether geometry A is covered by geometry B - no point of A is outside B.

Syntax​

ST_CoveredBy(geometry_a, geometry_b)

Parameters​

ParameterTypeDescription
geometry_aGeometryInner geometry
geometry_bGeometryOuter geometry

Returns​

TypeDescription
BooleanTrue if A is covered by B, false otherwise

Examples​

Point on Polygon Boundary​

SELECT ST_CoveredBy(
ST_Point(0, 2),
ST_GeomFromText('POLYGON((0 0, 4 0, 4 4, 0 4, 0 0))')
);
-- Returns: true (point on boundary is covered)

Compare with ST_Within​

SELECT
ST_Within(point, poly) as within,
ST_CoveredBy(point, poly) as covered_by
FROM (SELECT
ST_Point(0, 2) as point,
ST_GeomFromText('POLYGON((0 0, 4 0, 4 4, 0 4, 0 0))') as poly
);
-- within: false, covered_by: true

Find Points Covered by Region​

SELECT * FROM points
WHERE ST_CoveredBy(geom, (
SELECT geom FROM regions WHERE name = 'Area A'
));

Notes​

  • ST_CoveredBy is more inclusive than ST_Within
  • ST_Within returns false for points on boundary; ST_CoveredBy returns true
  • Use ST_CoveredBy when boundary points should be included
  • ST_CoveredBy(A, B) is equivalent to ST_Covers(B, A)

See Also​