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
9/11/2013