ST_Buffer toma um objeto de geometria e distância e retorna o objeto de geometria que está ao redor do objeto de origem.
Sintaxe
db2gse.ST_Buffer(g db2gse.ST_Geometry , adistance Double)
Tipo de retorno
db2gse.ST_Geometry
Exemplos
O Supervisor do Município precisa de uma lista de locais arriscados num raio de 8 km que abranja áreas sensíveis, como escolas, hospitais e casas de repousos. As áreas sensíveis são armazenadas na tabela SENSITIVE_AREAS que é criada com a seguinte instrução CREATE TABLE. A coluna ZONE é definida como um polígono, que está armazenado como o contorno de cada linha sensível.
CREATE TABLE SENSITIVE_AREAS (id integer, name varchar(128), size float, type varchar(10), zone db2gse.ST_Polygon);
As áreas de risco são armazenadas na tabela HAZARDOUS_SITES que foi criada com a seguinte instrução CREATE TABLE. A coluna LOCATION, definida como um ponto, armazena uma localização que é o centro geográfico de cada local arriscado.
CREATE TABLE HAZARDOUS_SITES (site_id integer, name varchar(128), location db2gse.ST_Point);
As tabelas SENSITIVE_AREAS e HAZARDOUS_SITES são unidas pela função db2gse.ST_Overlaps. A função retorna 1 (VERDADEIRO) para todas as linhas SENSITIVE_AREAS cujos polígonos da zona sobrepõem o raio de buffer de 8 km do ponto de localização do 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;
Na Figura 29, algumas áreas sensíveis neste distrito administrativo estão dentro do buffer de 8 km das localizações de pontos arriscados. Os dois buffers de 8 km fazem interseção com o hospital e um deles faz interseção com a escola. Contudo, a casa de repouso está localizada com segurança fora dos dois raios.
Figura 29. Um buffer com um raio de 8 km é aplicado a um ponto
![]() |