ST_Overlaps 接受两个几何图形对象,若两个对象的交集产生相同维数的几何图形对象且该对象不等于任一个源对象, 则返回 1 (TRUE);否则,它返回 0 (FALSE)。
语法
db2gse.ST_Overlaps(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
返回类型
整数
示例
县级主管人员需要一个有害废物地点的列表,这些地点的五英里半径覆盖了一些敏感区域。
以下 CREATE TABLE 语句创建 SENSITIVE_AREAS 表。 除了包含 ZONE 列(用于存储公共设施的多边形几何图形)之外,SENSITIVE_AREAS 表还包含描述受威胁的公共设施的几列。
CREATE TABLE SENSITIVE_AREAS (id integer, name varchar(128), size float, type varchar(10), zone db2gse.ST_Polygon);
HAZARDOUS_SITES 表将地点的标识存储在 SITE_ID 和 NAME 列中, 而将每个地点的实际地理位置存储在 LOCATION 点列中。
CREATE TABLE HAZARDOUS_SITES (site_id integer, name varchar(128), location db2gse.ST_Point);
在以下 SELECT 语句中,通过 ST_Overlaps 函数将 SENSITIVE_AREAS 和 HAZARDOUS_SITES 表连接在一起。 对于其区域多边形与 HAZARDOUS_SITES 位置点的缓冲五英里半径重叠的 SENSITIVE_AREAS 表的所有行,它返回 1 (TRUE)。
SELECT hs.name FROM HAZARDOUS_SITES hs, SENSITIVE_AREAS sa WHERE db2gse.ST_Overlaps (buffer(hs.location,(5 * 5280)),sa.zone) = 1;
在图 37中,医院和学校与该县的两个有害废物地点的五英里半径重叠,而私人疗养院则不重叠。
图 37. 使用 ST_Overlaps 确定至少有一部分在有害废物区域内的建筑物
![]() |