ST_Buffer

创建与某个空间对象边界的距离大于或等于指定距离的 GEOMETRY 对象。该距离使用笛卡尔坐标单位测量。ST_Buffer 不接受大于 +1e15 或小于 –1e15 的距离大小。

行为类型

不可变

语法

ST_Buffer( g, d )

参数

g
需要计算缓冲区的空间对象,类型为 GEOMETRY
d
与对象之间的距离(以笛卡尔坐标单位为单位),类型为 FLOAT

返回

GEOMETRY

支持的数据类型

数据类型
GEOMETRY
Point
Multipoint
Linestring
Multilinestring
Polygon
Multipolygon
GeometryCollection

使用提示

  • 如果指定正距离,则 ST_Buffer 将返回表示对象外部距离小于或等于指定距离的点的多边形。如果指定负距离,则 ST_Buffer 将返回表示对象内部距离小于或等于指定距离的点的多边形。

  • 对于点、多点、线串和多线串,如果指定负距离,ST_Buffer 将返回空多边形。

  • Vertica Place 版本的 ST_Buffer 将返回多边形形式的缓冲区,因此缓冲区对象在其顶点处包含拐角。它不包含圆角。

示例

以下示例显示了 ST_Buffer 的用法。

返回 GEOMETRY 对象:

=> SELECT ST_AsText(ST_Buffer(ST_GeomFromText('POLYGON((0 1,1 4,4 3,0 1))'),1));
                                  ST_AsText
------------------------------------------------------------------------------
POLYGON ((-0.188847498856 -0.159920845081, -1.12155598386 0.649012935089, 0.290814745534 4.76344136152,
 0.814758063466 5.02541302048, 4.95372324225 3.68665254814, 5.04124517538 2.45512549204, -0.188847498856 -0.159920845081))
(1 row)