ST_Overlaps

Definición

ST_Overlaps toma dos objetos de ST_Geometry y devuelve 1 (Oracle) o t (PostgreSQL) si la intersección de los objetos resulta en un objeto ST_Geometry de la misma dimensión pero no igual a un objeto de origen; de lo contrario, devuelve 0 (Oracle) o f (PostgreSQL).

Sintaxis

sde.st_overlaps (g1 sde.st_geometry, g2 sde.st_geometry)

Tipo de devolución

Booleano

Ejemplo

El supervisor del condado necesita una lista de áreas sensibles que se superponen al radio de la zona de influencia de sitios de residuos peligrosos. La tabla sensitive_areas contiene varias columnas que describen las instituciones amenazadas además de la columna de forma, que almacena las geometrías de ST_Polygon.

La tabla hazardous_sites almacena la identidad de los sitios en la id de la columna, mientras que la ubicación geográfica de cada sitio se almacena en la columna de punto de sitio.

CREATE TABLE sensitive_areas (id integer,                                 shape sde.st_geometry);   CREATE TABLE hazardous_sites (id integer,                                site sde.st_geometry);   INSERT INTO sensitive_areas VALUES ( 1, sde.st_geometry ('polygon ((20 30, 30 30, 30 40, 20 40, 20 30))', 0) );  INSERT INTO sensitive_areas VALUES ( 2, sde.st_geometry ('polygon ((30 30, 30 50, 50 50, 50 30, 30 30))', 0) );  INSERT INTO sensitive_areas VALUES ( 3, sde.st_geometry ('polygon ((40 40, 40 60, 60 60, 60 40, 40 40))', 0) );  INSERT INTO hazardous_sites VALUES ( 4, sde.st_geometry ('point (60 60)', 0) );  INSERT INTO hazardous_sites VALUES ( 5, sde.st_geometry ('point (30 30)', 0) );

Las tablas sensitive_areas y hazardous_sites están unidas por la función ST_Overlaps, que devuelve la Id. para todas las filas sensitive_areas que contienen polígonos que se superponen con el radio de la zona de influencia de los puntos hazardous_sites.

Oracle

SELECT UNIQUE (hs.id) FROM HAZARDOUS_SITES hs, SENSITIVE_AREAS sa WHERE sde.st_overlaps (sde.st_buffer (hs.site, .01), sa.shape) = 1;  ID  4 5

PostgreSQL

SELECT DISTINCT (hs.id) FROM hazardous_sites hs, sensitive_areas sa WHERE sde.st_overlaps (sde.st_buffer (hs.site, .01), sa.shape) = 't';  id  4 5
9/11/2013