ST_Intersection toma dois objetos de figura geométrica e retorna o conjunto de interseção como um objeto de figura geométrica.
Se ST_Intersection receber um polígono e um segmento de reta como parâmetros de entrada e se forem aplicáveis as seguintes condições:
então ST_Intersection retornará a cadeia de texto, POINT EMPTY.
Sintaxe
db2gse.ST_Intersection(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
Tipo de retorno
db2gse.ST_Geometry
Exemplos
O oficial encarregado do serviço contra incêndios deve obter as áreas de hospitais, escolas e casas de repouso que fazem interseção com o raio de uma possível contaminação por lixo tóxico.
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 armazena a descrição de cada área 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);
A função de buffer gera um buffer de 8 km ao redor das áreas do lixo tóxico. A função ST_Intersection gera polígonos da interseção dos polígonos de locais de lixo tóxico em buffer e das áreas sensíveis. A função ST_Area retorna a área de polígono da interseção, que é resumida para cada local de risco pela função SUM. A cláusula GROUP BY direciona a consulta para agregar as áreas de interseção pela ID do local do lixo tóxico.
SELECT hs.name,SUM(db2gse.ST_Area(db2gse.ST_Intersection (sa.zone, db2gse.ST_buffer hs.location,(5 * 5280)))) FROM SENSITIVE_AREAS sa, HAZARDOUS_SITES hs GROUP BY hs.site_id;
Na Figura 35, os círculos representam os polígonos em buffer ao redor de locais de lixo tóxico. A interseção destes polígonos em buffer com os polígonos da área sensível produz três outros polígonos. O hospital no canto superior esquerdo faz interseção duas vezes, ao passo que a escolha no canto inferior direito faz apenas uma vez.
![]() |