ST_CONTAINS |
Contiens |
| BigQuery |
Syntaxe
|
ST_CONTAINS(geography_1, geography_2)
|
Paramètres
| Nom |
Description |
| geography_1 |
Ce paramètre permet de spécifier la première expression de type GEOGRAPHY, qui représente la géométrie "contenante" ou la zone de référence. |
| geography_2 |
Ce paramètre permet de spécifier la deuxième expression de type GEOGRAPHY, qui représente la géométrie "contenue". La fonction renvoie TRUE si geography_1 contient geography_2 (c'est-à-dire si geography_2 est entièrement à l'intérieur de geography_1 et que leurs intérieurs s'intersectent), et FALSE sinon. |
Description
Cette fonction permet de vérifier si aucun point géographique n'est à l'intérieur d'un autre point géographique.
Remarques
- Fonction de relation spatiale binaire : ST_CONTAINS permet de vérifier si une géographie en contient une autre. Elle établit une relation de type
"inclusion complète", c'est-à-dire que tous les points de geography_2 doivent être strictement à l'intérieur de geography_1 pour que le résultat soit TRUE. C'est une
fonction essentielle pour les analyses d'appartenance géographique.
- Respect strict de l'intérieur des géométries : La fonction ne renvoie TRUE que si l'intérieur de geography_2 est totalement inclus dans celui de
geography_1, sans chevauchement partiel ou contact uniquement par les bords. Ainsi, un point sur la frontière n'est pas considéré comme «contenu» dans un polygone, ce qui
renforce la rigueur spatiale de l'analyse.
- Utile pour filtrer les données par zone : ST_CONTAINS est fréquemment utilisée pour extraire tous les objets géographiques situés à l'intérieur d'une
zone donnée (comme une ville, un quartier ou une région). Par exemple, on peut identifier tous les points d'intérêt ou adresses clients qui se trouvent dans une
zone administrative donnée.
- Applicable à tous types de GEOGRAPHY : La fonction prend en charge différents types de géométries (polygones, points, lignes...). Par exemple, on peut
vérifier si une ligne (comme un itinéraire) est entièrement contenue dans un polygone (comme une zone protégée), ce qui permet des contrôles de conformité spatiale.
- Différente de ST_INTERSECTS : Contrairement à ST_INTERSECTS, qui renvoie TRUE dès qu'il y a un chevauchement, même partiel, ST_CONTAINS exige une inclusion
stricte. Cela permet de faire des requêtes plus précises, notamment lorsqu'il est nécessaire de garantir qu'un objet ne dépasse pas d'une certaine zone.
- Résultat booléen simple : Le retour de la fonction est un booléen (TRUE ou FALSE), ce qui la rend directement utilisable dans des clauses WHERE ou des
filtres logiques. Cela permet d'écrire des requêtes claires pour des règles métiers, comme l'interdiction de sortie d'un périmètre.
- Optimisation via indexation spatiale : Dans des bases de données bien conçues, l'utilisation de ST_CONTAINS peut bénéficier d'optimisations comme les
index spatiaux, qui accélèrent la recherche des objets contenus dans une zone donnée. Cela est particulièrement important lorsqu'on travaille avec des millions
d'enregistrements géographiques.
- Comportement influencé par les géométries invalides : Si l'une des géométries passées en paramètre est invalide (par exemple, un polygone mal fermé), le
résultat de ST_CONTAINS peut être erroné ou conduire à une erreur. Il est donc recommandé de valider les géométries en amont, à l'aide de fonctions comme ST_ISVALID.
Dernière mise à jour : Jeudi, le 18 Juin 2020