ST_Buffer 接受几何图形对象和距离并返回围绕源对象的几何图形对象。
语法
db2gse.ST_Buffer(g db2gse.ST_Geometry , adistance Double)
返回类型
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);
db2gse.ST_Overlaps 函数将 SENSITIVE_AREAS 和 HAZARDOUS_SITES 表连接在一起。对其区域多边形覆盖 HAZARDOUS_SITES 位置点的缓冲五英里半径的所有 SENSITIVE_AREAS 行,该函数返回 1 (TRUE)。
SELECT sa.name "Sensitive Areas", hs.name "Hazardous Sites" FROM SENSITIVE_AREAS sa, HAZARDOUS_SITES hs WHERE db2gse.ST_Overlaps(sa.zone, db2gse.ST_Buffer (hs.location,(5 * 5280))) = 1;
在图 29中, 此管理区的某些敏感区域位于危险地点的五英里缓冲区内。 两个五英里缓冲区都与医院相交,它们中的一个与学校相交。 而私人疗养院安全地位于两个半径之外。
![]() |