ST_Intersects compare deux géométries et renvoie la valeur 1 (TRUE) si l'intersection de deux géométries ne génère pas un ensemble vide, et la valeur 0 (FALSE) dans le cas contraire.
Syntaxe
db2gse.ST_Intersects(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
Type de retour
Integer
Exemples
Le commandant des pompiers a besoin de la liste des zones sensibles situées dans un rayon de 8 km d'un site de déchets dangereux.
Les zones sensibles sont enregistrées dans la table SENSITIVE_AREAS créée avec l'instruction CREATE TABLE ci-dessous. La colonne ZONE est définie en tant que polygone qui contient le contour de chaque zone sensible.
CREATE TABLE SENSITIVE_AREAS (id integer, name varchar(128), size float, type varchar(10), zone db2gse.ST_Polygon);
Les sites à risque sont stockés dans la table HAZARDOUS_SITES créée avec l'instruction CREATE TABLE présentée ci-après. La colonne LOCATION, définie en tant que point, stocke une position qui représente le centre géographique du site à risque.
CREATE TABLE HAZARDOUS_SITES (site_id integer, name varchar(128), location db2gse.ST_Point);
La requête renvoie la liste des zones sensibles et des noms des sites à risque correspondant qui forment une intersection avec la zone tampon de 8 km définie autour des sites.
SELECT sa.name, hs.name FROM SENSITIVE_AREAS sa, HAZARDOUS_SITES hs WHERE db2gse.ST_Intersects(db2gse.ST_Buffer(hs.location,(5 * 5280)),sa.zone) = 1;