La fonction ST_COVERS détermine si le premier objet géographique couvre le second. Cela est vrai si tous les points du second objet géographique se situent sur la limite ou à l'intérieur du premier objet géographique.
Syntaxe
BOOLEAN ST_COVERS(GEOGRAPHY <value1>, GEOGRAPHY <value2>)
Paramètres
value1, value2 : Obligatoire. Valeurs de type GEOGRAPHY data type. Construisez des objets GEOGRAPHY à l'aide de fonctions telles que ST_GEOGPOINT, ST_GEOGFROMWKB, ST_GEOGFROMTEXT, ST_MAKELINE et ST_MAKEPOLYGON.
Valeur renvoyée
Renvoie une valeur BOOLEAN.
Renvoie TRUE si tous les points du second objet géographique se trouvent sur la limite ou à l'intérieur du premier objet géographique ; sinon, renvoie FALSE.
Renvoie FALSE si value1 ou value2 est un objet géographique vide.
Un objet géographique couvre ses propres nœuds limites .
Exemples
-
Exemple 1 : Vérifie si le polygone POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0)) couvre trois points : (5, 5) à l'extérieur du polygone, (0, 0) sur sa limite et (0,5, 0,5) à l'intérieur.
-- Returns TRUE because point(0 0) is on a boundary node of the polygon. SELECT ST_COVERS(ST_GEOGFROMTEXT('POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0))'), ST_GEOGPOINT(0, 0)); -- Returns TRUE because point(0.5 0.5) is in the interior of the polygon. SELECT ST_COVERS(ST_GEOGFROMTEXT('POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0))'), ST_GEOGPOINT(0.5, 0.5)); -- Returns FALSE because point(5 5) is outside the polygon. SELECT ST_COVERS(ST_GEOGFROMTEXT('POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0))'), ST_GEOGPOINT(5, 5)); -
Exemple 2 : Montre que ST_COVERS renvoie FALSE lorsqu'un argument est un objet géographique vide.
-- Returns FALSE SELECT ST_COVERS(ST_GEOGFROMTEXT('POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0))'),ST_GEOGFROMTEXT('point empty'));