ST_Boundary
ST_Boundary returns the boundary of an input geometry as follows:
If the input geometry is empty (that is, it contains no points) it is returned as is.
If the input geometry is a point or nonempty multipoint, an empty geometry collection is returned.
If the input is a linestring or a multilinestring, then a multipoint containing all the points on the boundary is returned. The multipoint might be empty).
If the input is a polygon that does not have any interior rings, then a closed linestring representing its boundary is returned.
If the input is a polygon that has interior rings, or is a multipolygon, then a multilinestring is returned. The multilinestring contains all the boundaries of all the rings in the areal geometry as closed linestrings.
To determine point equality, ST_Boundary operates on the 2D projection of the input geometry.
If the input geometry is empty, a copy of it is returned in the same dimension as the input.
For nonempty 3DM and 4D geometries, their m
coordinates are dropped.
In the special case of 3DZ and 4D multilinestrings, the z
coordinates of the multilinestring's boundary points
are computed as the averages of the distinct z-values of the linestring boundary points with the same 2D projection.
Syntax
ST_Boundary(geom)
Arguments
- geom
-
A value of data type
GEOMETRY
or an expression that evaluates to aGEOMETRY
type.
Return type
GEOMETRY
If geom is null, then null is returned.
If geom is a GEOMETRYCOLLECTION
, then an error is returned.
Examples
The following SQL returns the boundary of the input polygon as a multilinestring.
SELECT ST_AsEWKT(ST_Boundary(ST_GeomFromText('POLYGON((0 0,10 0,10 10,0 10,0 0),(1 1,1 2,2 1,1 1))')));
st_asewkt
--------------------
MULTILINESTRING((0 0,10 0,10 10,0 10,0 0),(1 1,1 2,2 1,1 1))