用户指南和参考

ST_Intersection

ST_Intersection 接受两个几何图形对象并以几何图形对象形式返回交集。

语法

db2gse.ST_Intersection(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)

返回类型

db2gse.ST_Geometry

示例

消防队长必须获取与可能的有害废物污染的半径相交的医院、学校和私人疗养院区域。

敏感区域存储在用以下 CREATE TABLE 语句创建的表 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 表中。 定义为点的 LOCATION 列存储每个危险地点的地理中心的位置。

CREATE TABLE HAZARDOUS_SITES (site_id   integer,
                              name      varchar(128),
                              location  db2gse.ST_Point);

buffer 函数生成环绕有害废物地点位置的五英里缓冲区。 ST_Intersection 函数从缓冲的有害废物地点多边形和敏感区域的交集生成多边形。 ST_Area 函数返回交集多边形的面积,由 SUM 函数对每个危险地点求出该面积。 GROUP BY 子句指示查询按有害废物 site_ID 汇总相交的面积。

SELECT hs.name,SUM(db2gse.ST_Area(db2gse.ST_Intersection (sa.zone,
db2gse.ST_buffer hs.location,(5 * 5280))))
FROM SENSITIVE_AREAS sa, HAZARDOUS_SITES hs
GROUP BY hs.site_id; 

图 35中, 圆表示有害废物地点周围的缓冲多边形。 这些缓冲多边形与敏感区域的交集产生其他三个多边形。 左上角的医院相交了两次,而右下角的学校只相交了一次。

图 35. 使用 ST_Intersection 确定每个建筑物中可能有多大面积受有害废物影响


顶部


[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 ]