O ST_SymmetricDiff toma dois objetos de geometria e retorna um objeto de geometria que é a diferença simétrica dos objetos de origem.
Sintaxe
db2gse.ST_SymmetricDiff(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
Tipo de retorno
db2gse.ST_Geometry
Exemplos
O supervisor do município deve determinar a área sensível e o raio de 8 km de áreas de risco que não têm interseção.
A seguinte instrução CREATE TABLE cria a tabela SENSITIVE_AREAS, que contém várias colunas que descrevem as instituições ameaçadas. A tabela SENSITIVE_AREAS também contém a coluna ZONE, que armazena a geometria do polígono da instituição.
CREATE TABLE SENSITIVE_AREAS (id integer, name varchar(128), size float, type varchar(10), zone db2gse.ST_Polygon);
A seguinte instrução CREATE TABLE cria a tabela HAZARDOUS_SITES, que armazena a identidade dos locais nas colunas SITE_ID e NAME, ao passo que a localização geográfica real de cada local está armazenada na coluna de ponto LOCATION.
CREATE TABLE HAZARDOUS_SITES (site_id integer, name varchar(128), location point);
A função ST_Buffer gera um buffer de 8 km ao redor das áreas do lixo tóxico. A função ST_SymmetricDiff gera polígonos a partir da intersecção dos polígonos de locais com lixo tóxico em buffer e das áreas sensíveis. A função ST_Area retorna a área de polígono da interseção, de cada área de risco.
SELECT sa.name, hs.name, db2gse.ST_Area(db2gse.ST_SymmetricDiff (db2gse.ST_Buffer(hs.location, (5 * 5280)),sa.zone)) FROM HAZARDOUS_SITES hs, SENSITIVE_AREAS sa
![]() |
Na Figura 38, a diferença simétrica das áreas de lixo tóxico e das área sensíveis resulta na subtração das áreas de interseção.