PostGIS

ST_IsClosed

Prev

7.4. Geometry Accessors

Next

Name

ST_IsClosed — Tests if a LineStrings’s start and end points are coincident. For a PolyhedralSurface tests if it is closed (volumetric).

Synopsis

boolean +`*`+ST_IsClosed*(`geometry `g`)`;

Description

Returns TRUE if the `LINESTRING’s start and end points are coincident. For Polyhedral Surfaces, reports if the surface is areal (open) or volumetric (closed).

[.inlinemediaobject]check This method implements the OGC Simple Features Implementation Specification for SQL 1.1.

check This method implements the SQL/MM specification.

SQL-MM 3: 7.1.5, 9.3.3

Note

SQL-MM defines the result of ST_IsClosed(NULL) to be 0, while PostGIS returns NULL.

check This function supports 3d and will not drop the z-index.

check This method supports Circular Strings and Curves.

Enhanced: 2.0.0 support for Polyhedral surfaces was introduced.

check This function supports Polyhedral surfaces.

Line String and Point Examples

postgis=# SELECT ST_IsClosed('LINESTRING(0 0, 1 1)'::geometry);
 st_isclosed
-------------
 f
(1 row)

postgis=# SELECT ST_IsClosed('LINESTRING(0 0, 0 1, 1 1, 0 0)'::geometry);
 st_isclosed
-------------
 t
(1 row)

postgis=# SELECT ST_IsClosed('MULTILINESTRING((0 0, 0 1, 1 1, 0 0),(0 0, 1 1))'::geometry);
 st_isclosed
-------------
 f
(1 row)

postgis=# SELECT ST_IsClosed('POINT(0 0)'::geometry);
 st_isclosed
-------------
 t
(1 row)

postgis=# SELECT ST_IsClosed('MULTIPOINT((0 0), (1 1))'::geometry);
 st_isclosed
-------------
 t
(1 row)

Polyhedral Surface Examples

        -- A cube --
        SELECT ST_IsClosed(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)),
        ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)),
        ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)),
        ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) )'));

 st_isclosed
-------------
 t


 -- Same as cube but missing a side --
 SELECT ST_IsClosed(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)),
        ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)),
        ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)),
        ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)) )'));

 st_isclosed
-------------
 f

See Also

Prev

Up

Next

ST_InteriorRingN

Home

ST_IsCollection