ST_Buffer toma un objeto geometría y una distancia y devuelve el objeto geometría que rodea al objeto fuente.
Sintaxis
db2gse.ST_Buffer(g db2gse.ST_Geometry , adistance Double)
Tipo devuelto
db2gse.ST_Geometry
Ejemplos
Supongamos que el supervisor de un condado necesita una lista de lugares peligrosos cuyo radio de cinco millas solape áreas especialmente sensibles, como colegios, hospitales y guarderías. Las áreas sensibles se almacenan en la tabla SENSITIVE_AREAS que se crea con la siguiente sentencia CREATE TABLE. La columna ZONE está definida como un polígono, que se almacena como el contorno de cada área sensible.
CREATE TABLE SENSITIVE_AREAS (id integer, name varchar(128), size float, type varchar(10), zone db2gse.ST_Polygon);
Los sitios peligrosos se almacenan en la tabla HAZARDOUS_SITES que se crea con la siguiente sentencia CREATE TABLE. La columna LOCATION, definida como un punto, almacena la ubicación que constituye el centro geográfico de cada sitio peligroso.
CREATE TABLE HAZARDOUS_SITES ( site_id integer, name varchar(128), location db2gse.ST_Point);
Las tablas SENSITIVE_AREAS y HAZARDOUS_SITES se unen mediante la función db2gse.ST_Overlaps. La función devuelve 1 (TRUE) para todas las filas de SENSITIVE_AREAS cuyos polígonos de zona se solapan con el radio de cinco millas que rodea el punto de la ubicación 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;
En la Figura 29, algunas de las áreas sensibles de este distrito administrativo quedan dentro de las cinco millas que rodean las ubicaciones de los sitios peligrosos. Ambas zonas que rodean con un radio de cinco millas forman intersección con el hospital, y una forma intersección con el colegio. Sin embargo, la guardería queda fuera de ambos radios.
Figura 29. Se redondea un punto con un radio de cinco millas
![]() |