ST_Intersection utilise en entrée un objet de type géométrie et renvoie l'ensemble de l'intersection en tant que géométrie.
Si ST_Intersection reçoit en entrée un polygone et une ligne et que les conditions sont vérifiées :
alors ST_Intersection renvoie la chaîne de caractère POINT EMPTY (point vide).
Syntaxe
db2gse.ST_Intersection(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
Type de retour
db2gse.ST_Geometry
Exemples
Le commandant des pompiers doit obtenir la liste des zones des hôpitaux, écoles et maisons de retraite qui coupent le rayon d'une zone de contamination potentielle par des 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 fonction Buffer génère une zone tampon de 8 km autour de l'emplacement des sites de déchets dangereux. La fonction ST_Intersection génère des polygones à partir de l'intersection des polygones des zones tampons des sites à risque avec les zones sensibles. La fonction ST_Area renvoie la surface du polygone d'intersection cumulée par la fonction SUM pour chaque site à risque. La clause GROUP BY demande à la requête d'agréger les zones formant une intersection en fonction de l'ID du site de déchets dangereux.
SELECT hs.name,SUM(db2gse.ST_Area(db2gse.ST_Intersection (sa.zone, db2gse.ST_buffer hs.location,(5 * 5280)))) FROM SENSITIVE_AREAS sa, HAZARDOUS_SITES hs GROUP BY hs.site_id;
Sur la Figure 35, les cercles représentent les polygones tampons qui entourent les sites de déchets dangereux. L'intersection de ces polygones avec ceux des zones sensibles génèrent trois autres polygones. L'hôpital figurant dans la partie supérieure gauche forme une intersection avec deux cercles alors que que l'école n'en coupe qu'un seul.