ST_Buffer verwendet ein Geometrieobjekt und eine Entfernung und gibt das Geometrieobjekt zurück, das das Quellenobjekt umgibt.
Syntax
db2gse.ST_Buffer(g db2gse.ST_Geometry , adistance Double)
Rückgabetyp
db2gse.ST_Geometry
Beispiele
Der zuständige Planer benötigt eine Liste der Gefahrenstandorte, in deren Umkreis von fünf Meilen sensible Bereiche wie Schulen, Krankenhäuser und Pflegeheime liegen. Die sensiblen Bereiche sind in der Tabelle SENSITIVE_AREAS gespeichert, die mit der folgenden Anweisung CREATE TABLE erstellt wird. Die Spalte ZONE ist als Polygon definiert; dieses Polygon stellt den Umriß der jeweiligen sensiblen Bereiche dar.
CREATE TABLE SENSITIVE_AREAS (id integer, name varchar(128), size float, type varchar(10), zone db2gse.ST_Polygon);
Die Gefahrenstandorte sind in der Tabelle HAZARDOUS_SITES gespeichert, die mit der folgenden Anweisung CREATE TABLE erstellt wird. Die als Punkt definierte Spalte LOCATION speichert einen Standort, der das geographische Zentrum jedes Gefahrenstandorts darstellt.
CREATE TABLE HAZARDOUS_SITES (site_id integer, name varchar(128), location db2gse.ST_Point);
Die Tabellen SENSITIVE_AREAS und HAZARDOUS_SITES werden über die Funktion db2gse.ST_Overlaps verknüpft. Die Funktion gibt 1 (TRUE) zurück für alle Zeilen SENSITIVE_AREAS, deren Zonenpolygone den Puffer von fünf Meilen um den Punkt HAZARDOUS_SITES schneiden.
SELECT sa.name "Sensible Bereiche", hs.name "Gefahrenpunkte" FROM SENSITIVE_AREAS sa, HAZARDOUS_SITES hs WHERE db2gse.ST_Overlaps(sa.zone, db2gse.ST_Buffer (hs.location,(5 * 5280))) =1;
In Abbildung 29 liegen einige der sensiblen Bereiche in diesem Verwaltungsbezirk innerhalb des Fünf-Meilen-Puffers um die Gefahrenstandorte. Beide Fünf-Meilen-Puffer enthalten das Krankenhaus, einer davon enthält die Schule. Das Pflegeheim liegt außerhalb beider Bereiche.
Abbildung 29. Ein Puffer mit einem Fünf-Meilen-Radius wird auf einen Punkt angewendet