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)