ST_Disjoint rileva due oggetti di geometria e restituisce 1 (TRUE) se l'intersezione dei due oggetti produce una serie vuota; altrimenti restituisce 0 (FALSE).
Sintassi
db2gse.ST_Disjoint(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
Tipo di ritorno
Integer
Esempi
Una compagnia di assicurazioni desidera valutare la copertura assicurativa per un ospedale, un asilo o una scuola di una città. Una parte di questo processo comprende la determinazione dei rischi che le zone pericolose determinano per ciascuna istituzione. La compagnia di assicurazioni considera solo le istituzioni che non risultano a rischio di contaminazione. Il consulente GIS ingaggiato dalla compagnia di assicurazioni è stato incaricato di localizzare tutte le istituzioni che non si trovano nel raggio di cinque miglia da queste zone pericolose.
La tabella SENSITIVE_AREAS contiene diverse colonne che descrivono le istituzioni interessate oltre alla colonna ZONE che memorizza la geometria del poligono dell'istituzione.
CREATE TABLE SENSITIVE_AREAS (id integer, name varchar(128), size float, type varchar(10), zone db2gse.ST_Polygon);
La tabella HAZARDOUS_SITES memorizza l'identità dei siti nelle colonne SITE_ID e NAME, mentre l'effettiva ubicazione geografica di ogni sito viene memorizzata nella colonna LOCATION.
CREATE TABLE HAZARDOUS_SITES (site_id integer, name varchar(128), location db2gse.ST_Point);
La seguente istruzione SELECT elenca i nomi di tutte le zone protette che non si trovano nel raggio di cinque miglia da una zona a rischio. La funzione ST_Intersects può sostituire la funzione ST_Disjoint in questa interrogazione se il risultato della funzione viene impostato su 0 piuttosto che su 1. Questo perché ST_Intersects e ST_Disjoint restituiscono il risultato opposto.
SELECT sa.name FROM SENSITIVE_AREAS sa, HAZARDOUS_SITES hs WHERE db2gse.ST_Disjoint(db2gse.ST_Buffer(hs.location,(5 * 5280)),sa.zone) = 1;
Nella Figura 32, le zone protette vengono confrontate al raggio di cinque miglia delle zone a rischio. L'asilo risulta l'unica zona protetta per la quale la funzione ST_Disjoint restituirà 1 (TRUE). La funzione ST_Disjoint restituisce 1 se le due geometrie non si intersecano.
![]() |