ST_Union
Definición
ST_Union devuelve un objeto ST_Geometry que es la combinación de dos objetos de origen.
Sintaxis
sde.st_union (g1 sde.st_geometry, g2 sde.st_geometry)
Tipo de devolución
ST_Geometry
Ejemplo
La tabla sensitive_areas almacena las Id. de las instituciones amenazadas además de la columna de forma, que almacena las geometrías ST_Polygon de las instituciones.
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) );
La función ST_Buffer genera una zona de influencia que rodea los sitios de residuos peligrosos. La función ST_Union genera polígonos desde la unión de los sitios de residuos peligrosos de la zona de influencia y polígonos de área sensible. La función ST_Area devuelve el área de estos polígonos.
Oracle
SELECT sa.id SA_ID, hs.id HS_ID, sde.st_area (sde.st_union (sde.st_buffer (hs.site, .01), sa.shape)) UNION_AREA FROM HAZARDOUS_SITES hs, SENSITIVE_AREAS sa; SA_ID HS_ID UNION_AREA 1 4 100.000313935011 2 4 400.000313935011 3 4 400.000235451258 1 5 100.000235451258 2 5 400.000235451258 3 5 400.000313935011
PostgreSQL
SELECT sa.id AS SA_ID, hs.id AS HS_ID, sde.st_area (sde.st_union (sde.st_buffer (hs.site, .01), sa.shape)) AS UNION_AREA FROM hazardous_sites hs, sensitive_areas sa; sa_id hs_id union_area 1 4 100.000313935011 2 4 400.000313935011 3 4 400.000235451258 1 5 100.000235451258 2 5 400.000235451258 3 5 400.000313935011