Referência e Guia do Usuário

ST_Disjoint

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.

Figura 32. Usando ST_Disjoint para encontrar as construções que não estejam dentro de (interseção) alguma área de lixo tóxico


top


[ Início da Página | Página Anterior | Próxima Página | Índice | Índice Remissivo ]