GeometryCollection whose parts are ordered by ascending buffer distance. This is the multi-distance counterpart to ST_Buffer; each individual buffer is computed with the same semantics as ST_Buffer, so the optional useSpheroid flag and buffer-style parameters string behave identically.
The second argument is an array of buffer distances (integers or doubles), supplied either as an array literal or as a column of array type.
The concentric argument controls how the buffers are combined:
concentric = true(default): the parts are disjoint annular rings (“donuts”). The innermost part is the solid buffer at the smallest distance, and each outer part is the full buffer at that distance with the next-smaller buffer subtracted. Because buffering is monotonic (ST_Buffer(g, d1)is contained inST_Buffer(g, d2)whend1 <= d2), the rings never overlap.concentric = false: the parts are the overlapping full buffers at each distance, i.e. a stack ofST_Bufferresults.- Negative values are supported. Fully decimated negative buffers return empty geometries.
A
null input geometry returns null. An empty or null distances array returns an empty GeometryCollection.Signatures
Parameters
Geometry
required
The input geometry.
Array<Double>
required
The buffer distances. Sorted ascending and de-duplicated before processing.
Boolean
true (default) for disjoint annular rings; false for overlapping full buffers.Boolean
Whether to use spheroidal distance calculation, as in
ST_Buffer. When true, distances are interpreted as meters.String
The buffer style parameters value, as in
ST_Buffer (e.g. quad_segs=8 endcap=round).Return type
A
GeometryCollection of buffer rings ordered by ascending distance.Examples
Concentric rings (default) — three disjoint annuli ordered from innermost to outermost:concentric = false:
concentric, useSpheroid, the ST_Buffer buffer style string:

