Catégories :

Fonctions géospatiales

ST_COVERS

Renvoie TRUE si aucun point d’un objet géospatial ne se trouve à l’extérieur d’un autre objet géospatial. En d’autres termes :

  • GEOGRAPHY l’objet g2 est à l’extérieur de GEOGRAPHY l’objet g1.

  • GEOMETRY l’objet g2 est à l’extérieur de GEOMETRY l’objet g1.

ST_COVERS est similaire, mais subtilement différent de ST_CONTAINS. Pour plus de détails sur les différences entre « covers » (couvre) et « contains » (contient), voir le modèle à 9 intersections dimensionnellement étendu (DE-9IM).

Bien que ST_COVERS et ST_CONTAINS puissent sembler similaires, les deux fonctions présentent des différences subtiles. Pour plus de détails sur les différences entre « covers » (couvre) et « contains » (contient), voir le modèle à 9 intersections dimensionnellement étendu (DE-9IM).

Note

Cette fonction ne prend pas en charge l’utilisation de GeometryCollection ou de FeatureCollection comme valeurs d’entrée.

Astuce

Vous pouvez utiliser le service d’optimisation de recherche pour améliorer les performances des requêtes qui appellent cette fonction. Pour plus de détails, voir Service d’optimisation de la recherche.

Voir aussi :

ST_CONTAINS , ST_COVEREDBY

Syntaxe

ST_COVERS( <geography_expression_1> , <geography_expression_2> )

ST_COVERS( <geometry_expression_1> , <geometry_expression_2> )
Copy

Arguments

geography_expression_1

Un objet GEOGRAPHY qui n’est pas un GeometryCollection ou un FeatureCollection.

geography_expression_2

Un objet GEOGRAPHY qui n’est pas un GeometryCollection ou un FeatureCollection.

geometry_expression_1

Un objet GEOMETRY qui n’est pas un GeometryCollection ou un FeatureCollection.

geometry_expression_2

Un objet GEOMETRY qui n’est pas un GeometryCollection ou un FeatureCollection.

Renvoie

BOOLEAN.

Notes sur l’utilisation

  • Pour les objets GEOMETRY, la fonction signale une erreur si les deux objets GEOMETRY en entrée ont des SRIDs différents.

Exemples

Exemples GEOGRAPHY

Cela montre une utilisation simple de la fonction ST_COVERS :

create table geospatial_table_01 (g1 GEOGRAPHY, g2 GEOGRAPHY);
insert into geospatial_table_01 (g1, g2) values 
    ('POLYGON((0 0, 3 0, 3 3, 0 3, 0 0))', 'POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))');
Copy
SELECT ST_COVERS(g1, g2) 
    FROM geospatial_table_01;
+-------------------+
| ST_COVERS(G1, G2) |
|-------------------|
| True              |
+-------------------+
Copy

Exemples GEOMETRY

La requête ci-dessous montre plusieurs exemples d’utilisation de ST_COVERS. Notez comment le polygone couvre (mais ne contient pas) une LineString sur sa bordure.

SELECT ST_COVERS(poly, poly_inside),
       ST_COVERS(poly, poly),
       ST_COVERS(poly, line_on_boundary),
       ST_COVERS(poly, line_inside)
  FROM (SELECT TO_GEOMETRY('POLYGON((-2 0, 0 2, 2 0, -2 0))') AS poly,
               TO_GEOMETRY('POLYGON((-1 0, 0 1, 1 0, -1 0))') AS poly_inside,
               TO_GEOMETRY('LINESTRING(-1 1, 0 2, 1 1)') AS line_on_boundary,
               TO_GEOMETRY('LINESTRING(-2 0, 0 0, 0 1)') AS line_inside);
Copy
+------------------------------+----------------------+----------------------------------+-----------------------------+
| ST_COVERS(POLY, POLY_INSIDE) | ST_COVERS(POLY,POLY) | ST_COVERS(POLY,LINE_ON_BOUNDARY) | ST_COVERS(POLY,LINE_INSIDE) |
|------------------------------+----------------------+----------------------------------+-----------------------------|
| True                         | True                 | True                             | True                        |
+------------------------------+----------------------+----------------------------------+-----------------------------+
Copy