Guida di riferimento per l'utente

ST_Disjoint

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.

Figura 32. Utilizzo di ST_Disjoint per la ricerca degli edifici che non sono situati all'interno di un'area a rischio


top


[ Inizio pagina | Pagina precedente | Pagina successiva | Indice | Indice analitico ]