ST_Buffer toma um objeto de figura geométrica e distância e retorna o objeto de figura geométrica que está ao redor do objeto de origem.
Sintaxe
db2gse.ST_Buffer(g db2gse.ST_Geometry , [measure] 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); INSERT INTO HAZARDOUS SITES VALUES (102, 'Allied Chemicals', db2gse.ST_PointFromText('Point(157000 475000)',coordref()..srid(0)))
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;
(5 * 5280 representa cinco milhas (oito quilômetros). Isso decorre do fato de haver 5280 pés em uma milha e de um pé ser a unidade linear do sistema de coordenadas ao qual as coordenadas especificadas na instrução VALUES pertencem).
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
![]() |