ST_CoveredBy
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: 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".
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
|
Enhanced: 3.0.0 enabled support for
|
Do not use this function with invalid geometries. You will get unexpected results. |
Performed by the GEOS module
Availability: 1.2.2
NOTE: 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)