ST_Buffer rileva un oggetto di geometria e la distanza e restituisce l'oggetto geometrico che circonda l'oggetto di origine.
Sintassi
db2gse.ST_Buffer(g db2gse.ST_Geometry , adistance Double)
Tipo di ritorno
db2gse.ST_Geometry
Esempi
L'ispettore regionale richiede un elenco dei luoghi pericolosi situati nel raggio di cinque miglia dalle zone protette come le scuole, gli asili e gli ospedali. 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 viene memorizzato come 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);
Le tabelle SENSITIVE_AREAS e HAZARDOUS_SITES vengono unite dalla funzione db2gse.ST_Overlaps. Questa funzione restituisce 1 (TRUE) per tutte le righe SENSITIVE_AREAS i cui poligoni di zona si sovrappongono al raggio di cinque miglia del punto di ubicazione HAZARDOUS_SITES.
SELECT sa.name "Sensitive Areas", hs.name "Hazardous Sites" FROM SENSITIVE_AREAS sa, HAZARDOUS_SITES hs WHERE db2gse.ST_Overlaps(sa.zone, db2gse.ST_Buffer (hs.location,(5 * 5280))) =1;
Nella Figura 29, alcune zone protette in questo distretto amministrativo sono situate entro un raggio di cinque miglia dai luoghi a rischio. Questo raggio interseca la zona ospedaliera e la scuola. Mentre l'asilo si trova al sicuro lontano da questo raggio.
Figura 29. Un buffer con un raggio di cinque miglia viene applicato ad un punto
![]() |