PostGIS

ST_CoveredBy

Prev

7.11.1. Topological Relationships

Next

Name

ST_CoveredBy — Tests if every point of A lies in B

Synopsis

boolean +`*`+ST_CoveredBy*(`geometry `geomA, geometry geomB`)`;

boolean +`*`+ST_CoveredBy*(`geography `geogA, geography geogB`)`;

Description

Returns true if every point in Geometry/Geography A lies inside (i.e. intersects the interior or boundary of) Geometry/Geography B. Equivalently, tests that no point of A lies outside (in the exterior of) B.

In mathematical terms: [.emphasis]#ST_CoveredBy(A, B) ⇔ A ⋂ B = A #

ST_CoveredBy is the converse of ST_Covers. So, ST_CoveredBy(A,B) = ST_Covers(B,A).

Generally this function should be used instead of ST_Within, since it has a simpler definition which does not have the quirk that "boundaries are not within their geometry".

Note

This function automatically includes a bounding box comparison that makes use of any spatial indexes that are available on the geometries.

To avoid index use, use the function _ST_CoveredBy.

Important

Enhanced: 3.0.0 enabled support for GEOMETRYCOLLECTION

Important

Do not use this function with invalid geometries. You will get unexpected results.

Performed by the GEOS module

Availability: 1.2.2

this is the "allowable" version that returns a boolean, not an integer.

Not an OGC standard, but Oracle has it too.

Examples

  --a circle coveredby a circle
SELECT ST_CoveredBy(smallc,smallc) As smallinsmall,
  ST_CoveredBy(smallc, bigc) As smallcoveredbybig,
  ST_CoveredBy(ST_ExteriorRing(bigc), bigc) As exteriorcoveredbybig,
  ST_Within(ST_ExteriorRing(bigc),bigc) As exeriorwithinbig
FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 2)'), 10) As smallc,
  ST_Buffer(ST_GeomFromText('POINT(1 2)'), 20) As bigc) As foo;
  --Result
 smallinsmall | smallcoveredbybig | exteriorcoveredbybig | exeriorwithinbig
--------------+-------------------+----------------------+------------------
 t            | t                 | t                    | f
(1 row)

See Also

Prev

Up

Next

ST_ContainsProperly

Home

ST_Covers