ST_Intersection rileva due oggetti di geometria e restituisce la serie di intersezioni come oggetto di geometria.
Sintassi
db2gse.ST_Intersection(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
Tipo di ritorno
db2gse.ST_Geometry
Esempi
I vigili del fuoco devono esaminare le aree degli ospedali, delle scuole e degli asili che vengono intersecate dal raggio di una possibile area a rischio di contaminazione.
Le zone protette vengono memorizzate nella tabella SENSITIVE_AREAS creata con la seguente istruzione CREATE TABLE. La colonna ZONE viene definita come un poligono, che memorizza il perimetro di ciascuna zona protetta.
CREATE TABLE SENSITIVE_AREAS (id integer, name varchar(128), size float, type varchar(10), zone db2gse.ST_Polygon);
I siti a rischio vengono memorizzati nella tabella HAZARDOUS_SITES creata con la seguente istruzione CREATE TABLE. La colonna LOCATION, definita come punto, memorizza un'ubicazione che rappresenta il centro geografico di ciascun sito a rischio.
CREATE TABLE HAZARDOUS_SITES (site_id integer, name varchar(128), location db2gse.ST_Point);
La funzione buffer genera a un buffer di cinque miglia che circonda le ubicazioni delle discariche a rischio. La funzione ST_Intersection genera poligoni dall'intersezione dei poligoni delle discariche a rischio incluse nel buffer e aree protette. La funzione ST_Area restituisce l'area dei poligoni dell'intersezione che viene sommata per ciascuna zona a rischio dalla funzione SUM. La clausola GROUP BY indirizza l'interrogazione in modo da aggregare le aree intersecate in base al site_ID della zona a rischio.
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;
Nella Figura 35, i cerchi rappresentano i poligoni di cui è stato eseguito il buffer che circoscrivono le zone a rischio. L'intersezione di questi poligoni con quelli delle zone protette produce altri tre poligoni. L'ospedale nell'angolo sinistro superiore della figura viene intersecato due volte, mentre la scuola nell'angolo destro inferiore viene intersecata una sola volta.
![]() |