Skip to main content
Function to convert closed linestring to polygon including holes. If holes are provided, they should be fully contained within the shell. Holes outside the shell will produce an invalid polygon (matching PostGIS behavior). Use ST_IsValid to check the result. ST_MakePolygon

Signatures

ST_MakePolygon(geom: Geometry, holes: ARRAY[Geometry])

Parameters

geom
Geometry
required
The input geometry.
holes
ARRAY[Geometry]
required
The holes value.

Return type

The resulting geometry.

Example

SELECT ST_MakePolygon(
        ST_GeomFromText('LINESTRING(0 0, 10 0, 10 10, 0 10, 0 0)'),
        ARRAY(ST_GeomFromText('LINESTRING(2 2, 4 2, 4 4, 2 4, 2 2)'))
    )
POLYGON ((0 0, 10 0, 10 10, 0 10, 0 0), (2 2, 4 2, 4 4, 2 4, 2 2))