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 los Id. de las instituciones amenazadas además de la columna de zona, que almacena las geometrías ST_Polygon de las instituciones.
La tabla hazardous_sites almacena la identidad de los sitios en la columna Id., mientras que la ubicación geográfica real de cada sitio se almacena en la columna de punto de ubicación.
Oracle
CREATE TABLE sensitive_areas (id integer, zone sde.st_geometry); CREATE TABLE hazardous_sites (id integer, location sde.st_geometry); INSERT INTO SENSITIVE_AREAS VALUES ( 1, sde.st_polygon ('polygon ((20 30, 30 30, 30 40, 20 40, 20 30))', 0) ); INSERT INTO SENSITIVE_AREAS VALUES ( 2, sde.st_polygon ('polygon ((30 30, 30 50, 50 50, 50 30, 30 30))', 0) ); INSERT INTO SENSITIVE_AREASs VALUES ( 3, sde.st_polygon ('polygon ((40 40, 40 60, 60 60, 60 40, 40 40))', 0) ); INSERT INTO HAZARDOUS_SITES VALUES ( 4, sde.st_point ('point (60 60)', 0) ); INSERT INTO HAZARDOUS_SITES VALUES ( 5, sde.st_point ('point (30 30)', 0) );
La función ST_Buffer genera una zona de influencia que rodea las ubicaciones del sitio 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.location, .01), sa.zone)) UNION_AREA FROM HAZARDOUS_SITES hs, SENSITIVE_AREAS sa; SA_ID HS_ID UNION_AREA 1 4 100.000314 2 4 400.000314 3 4 400.000235 1 5 100.000235 2 5 400.000235 3 5 400.000314
PostgreSQL
SELECT sa.id AS SA_ID, hs.id AS HS_ID, sde.st_area (sde.st_union (sde.st_buffer (hs.location, .01), sa.zone)) AS UNION_AREA FROM hazardous_sites hs, sensitive_areas sa; sa_id hs_id union_area 1 4 100.000314 2 4 400.000314 3 4 400.000235 1 5 100.000235 2 5 400.000235 3 5 400.000314