Name

ST_CoveredBy — Tests si chaque point de A se trouve dans B

Synopsis

boolean ST_CoveredBy(geometry geomA, geometry geomB);

boolean ST_CoveredBy(geography geogA, geography geogB);

Description

Renvoie true si chaque point de la geometry/geography A se trouve à l'intérieur (c'est-à-dire coupe l'intérieur ou la limite) de la geometry/geography B. De manière équivalente, teste qu'aucun point de A ne se trouve à l'extérieur (dans l'extérieur) de B.

In mathematical terms: ST_CoveredBy(A, B) ⇔ A ⋂ B = A

ST_CoveredBy est le contraire de ST_Covers. Ainsi, ST_CoveredBy(A,B) = ST_Covers(B,A).

En général, cette fonction devrait être utilisée à la place de ST_Within, car elle a une définition plus simple qui n'a pas la particularité que "les limites ne sont pas à l'intérieur de leur géométrie".

[Note]

Cette fonction inclut une comparaison de la boîte englobante qui utilise tous les index disponibles sur les géométries.

Pour éviter l'utilisation d'un index, utilisez la fonction _ST_CoveredBy.

[Important]

Amélioration : 3.0.0 a permis la prise en charge de GEOMETRYCOLLECTION

[Important]

N'utilisez pas cette fonction avec des géométries non valides. Vous obtiendrez des résultats inattendus.

Effectué par le module GEOS

Disponibilité : 1.2.2

NOTE : il s'agit de la version "autorisée" qui renvoie un booléen et non un entier.

Il ne s'agit pas d'une norme de l'OGC, mais Oracle l'a également.

Exemples

--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) 

Voir aussi

ST_Contains, ST_Covers, ST_ExteriorRing, ST_Within