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