ST_SymmetricDiff 接受两个几何图形对象,并返回是源对象的对称差异的几何图形对象。
语法
db2gse.ST_SymmetricDiff(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
返回类型
db2gse.ST_Geometry
示例
县级主管人员必须确定敏感区域和五英里危险地点半径不相交的区域。
以下 CREATE TABLE 语句创建 SENSITIVE_AREAS 表, 该表包含描述受威胁的公共设施的几列。 SENSITIVE_AREAS 表还包含 ZONE 列,它存储公共设施的多边形几何图形。
CREATE TABLE SENSITIVE_AREAS (id integer, name varchar(128), size float, type varchar(10), zone db2gse.ST_Polygon);
以下 CREATE TABLE 语句创建 HAZARDOUS_SITES 表,它将地点的标识存储在 SITE_ID 和 NAME 列中,而将每个地点的实际地理位置存储在 LOCATION 点列中。
CREATE TABLE HAZARDOUS_SITES (site_id integer, name varchar(128), location point);
ST_Buffer 函数生成环绕有害废物地点位置的五英里缓冲区。 ST_SymmetricDiff 函数从缓冲的有害废物地点多边形和敏感区域的交集生成多边形。 ST_Area 函数对每个危险地点返回交集多边形的区域。
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
图 38. 使用 ST_SymmetricDiff 确定不包含敏感区域(居住建筑物)的有害废物区域
![]() |
在图 38中, 有害废物地点和敏感区域的对称差异导致相交区域减小。