ST_Intersects toma duas geometrias e retorna 1 (VERDADEIRO), se a interseção das duas geometrias não resultar num conjunto vazio. Do contrário, retornará 0 (FALSO).
Sintaxe
db2gse.ST_Intersects(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
Tipo de retorno
Inteiro
Exemplos
O oficial encarregado do serviço contra incêndios precisa de uma lista de todas as áreas sensíveis dentro de de um raio de 8 km de uma área de 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 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 consulta retorna uma lista de áreas sensíveis e nomes de áreas de risco para as áreas sensíveis que fazem interseção com o buffer de 8 km dos locais de risco.
SELECT sa.name, hs.name FROM SENSITIVE_AREAS sa, HAZARDOUS_SITES hs WHERE db2gse.ST_Intersects(db2gse.ST_Buffer(hs.location,(5 * 5280)),sa.zone) =1;