ST_Disjoint toma duas geometrias e retorna 1 (VERDADEIRO) se a interseção de duas geometrias produzir um conjunto vazio; do contrário retornará 0 (FALSO).
Sintaxe
db2gse.ST_Disjoint(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
Tipo de retorno
Inteiro
Exemplos
Uma companhia de seguros precisa orçar a cobertura de seguro para os hospitais, casas de repouso e escolas de uma cidade. Parte deste processo inclui a determinação da ameaça que os locais de lixo tóxico representam para cada instituição. A companhia de seguro pretende considerar somente as instituições que estejam com risco de contaminação. O consultor GIS contratado pela companhia de seguros foi encarregado de localizar todas as instituições que não estejam dentro do raio de 8 km de um depósito de lixo tóxico.
A tabela SENSITIVE_AREAS contém várias colunas que descrevem as instituições ameaçadas além da coluna ZONE, que armazena a geometria do polígono da instituição.
CREATE TABLE SENSITIVE_AREAS (id integer, name varchar(128), size float, type varchar(10), zone db2gse.ST_Polygon);
A tabela HAZARDOUS_SITES armazena a identidade dos locais nas colunas SITE_ID e NAME, ao passo que a localização geográfica real de cada local está armazenada na coluna LOCATION.
CREATE TABLE HAZARDOUS_SITES (site_id integer, name varchar(128), location db2gse.ST_Point);
A seguinte instrução SELECT relaciona os nomes de todas as áreas sensíveis que não estejam dentro do raio de 8 km de um local de lixo tóxico. A função ST_Intersects pode substituir a função ST_Disjoint nesta consulta se o resultado da função estiver definido igual a 0 em vez de 1. Isto porque ST_Intersects e ST_Disjoint retornam o resultado oposto exato.
SELECT sa.name FROM SENSITIVE_AREAS sa, HAZARDOUS_SITES hs WHERE db2gse.ST_Disjoint(db2gse.ST_Buffer(hs.location,(5 * 5280)),sa.zone) = 1;
Na Figura 32, são sensíveis os locais comparados ao raio de 8 km do lixo tóxico. A casa de repouso é a única área sensível em que a função ST_Disjoint retornará 1 (VERDADEIRO). A função ST_Disjoint retorna 1 sempre que duas geometrias não fazem interseção de alguma forma.
![]() |