- Catégories :
ST_CONTAINS¶
Renvoie TRUE si un objet GEOGRAPHY ou GEOMETRY est complètement à l’intérieur d’un autre objet du même type.
Plus strictement, l’objet g1 contient l’objet g2 si et seulement si aucun point de g2 ne se trouve à l’extérieur de g1, et au moins un point de l’intérieur de B se trouve à l’intérieur de A. Il y a certaines subtilités dans cette définition qui ne sont pas immédiatement évidentes. Pour plus de détails sur la signification de « 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 :
Syntaxe¶
ST_CONTAINS( <geography_expression_1> , <geography_expression_2> )
ST_CONTAINS( <geometry_expression_1> , <geometry_expression_2> )
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_CONTAINS :
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))');SELECT ST_CONTAINS(g1, g2) FROM geospatial_table_01; +---------------------+ | ST_CONTAINS(G1, G2) | |---------------------| | True | +---------------------+
Exemples GEOMETRY¶
La requête ci-dessous montre plusieurs exemples d’utilisation de ST_CONTAINS. Notez comment ST_CONTAINS détermine que :
Le polygone se contient lui-même.
Le polygone ne contient pas la LineString qui se trouve sur son bord.
SELECT ST_CONTAINS(poly, poly_inside), ST_CONTAINS(poly, poly), ST_CONTAINS(poly, line_on_boundary), ST_CONTAINS(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);
+--------------------------------+------------------------+------------------------------------+-------------------------------+ | ST_CONTAINS(POLY, POLY_INSIDE) | ST_CONTAINS(POLY,POLY) | ST_CONTAINS(POLY,LINE_ON_BOUNDARY) | ST_CONTAINS(POLY,LINE_INSIDE) | |--------------------------------+------------------------+------------------------------------+-------------------------------| | True | True | False | True | +--------------------------------+------------------------+------------------------------------+-------------------------------+