Guía y consulta del usuario

ST_Disjoint

ST_Disjoint toma dos geometrías y devuelve 1 (TRUE) si la intersección de las dos geometrías da como resultado un conjunto vacío y 0 (FALSE) si no es así.

Sintaxis

db2gse.ST_Disjoint(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)

Tipo devuelto

Entero

Ejemplos

Una compañía de seguros desea evaluar la cobertura de seguro del hospital, las guarderías y los colegios de una ciudad. Parte de este proceso incluye determinar la amenaza que suponen los sitios de residuos peligrosos para cada institución. La compañía de seguros desea tener en cuenta las instituciones que no están expuestas a la contaminación. El consultor de GIS contratado por la compañía de seguros debe localizar todas las instituciones que no se encuentran en un radio de cinco millas de un sitio de residuos peligrosos.

La tabla SENSITIVE_AREAS contiene varias columnas que describen las instituciones amenazadas además de la columna ZONE, que almacena la geometría de polígono de la institución.

CREATE TABLE SENSITIVE_AREAS (id        integer,
                             name       varchar(128),
                              size      float,
                              type      varchar(10),
                              zone      db2gse.ST_Polygon);

La tabla HAZARDOUS_SITES almacena la identidad de los sitios en las columnas SITE_ID y NAME, mientras que la ubicación geográfica real de cada sitio se almacena en la columna LOCATION.

CREATE TABLE HAZARDOUS_SITES ( site_id   integer,
                             name       varchar(128),
                              location  db2gse.ST_Point);

La siguiente sentencia SELECT lista los nombres de todas las áreas sensibles que no se encuentran en un radio de 5 millas de un sitio de residuos peligrosos. La función ST_Intersects podría sustituir a la función ST_Disjoint en esta consulta si el resultado de la función se define como igual a 0 en lugar de 1. Esto se debe a que ST_Intersects y ST_Disjoint devuelven resultados exactamente opuestos.

SELECT sa.name
FROM SENSITIVE_AREAS sa, HAZARDOUS_SITES hs
WHERE db2gse.ST_Disjoint(db2gse.ST_Buffer(hs.location,(5 * 5280)),sa.zone) = 1;

En la Figura 32, se comparan las áreas sensibles con el radio de cinco millas de los sitios de residuos peligrosos. La guardería es la única área sensible en la que la función ST_Disjoint devuelve 1 (TRUE). La función ST_Disjoint devuelve 1 cuando dos geometrías no forman ninguna intersección.

Figura 32. Utilización de ST_Disjoint para buscar edificios que no quedan dentro de ningún área de residuos peligrosos (no forman intersección con la misma)


top


[ Principio de página | Página anterior | Página siguiente | Contenido | Índice ]