ST_Boundary
Name
ST_Boundary — Returns the closure of the combinatorial boundary of this Geometry.
Synopsis
    
     geometry
     
      ST_Boundary
     
     (
    
    geometry
    
     geomA
    
    
     )
    
    ;
   
Description
Returns the closure of the combinatorial boundary of this Geometry. The combinatorial boundary is defined as described in section 3.12.3.2 of the OGC SPEC. Because the result of this function is a closure, and hence topologically closed, the resulting boundary can be represented using representational geometry primitives as discussed in the OGC SPEC, section 3.12.2.
Performed by the GEOS module
       
      | 
     |
| 
       
       Prior to 2.0.0, this function throws an exception if used with
         | 
    
   
    
   
   This method implements the
   
    OpenGIS Simple Features
 Implementation Specification for SQL 1.1.
   
   OGC SPEC s2.1.1.1
  
   
    
   
   This method implements the SQL/MM specification. SQL-MM 3: 5.1.14
  
   
    
   
   This function supports 3d and will not drop the z-index.
  
Enhanced: 2.1.0 support for Triangle was introduced
Examples
        
         Linestring with boundary points overlaid 
 SELECT ST_Boundary(geom) FROM (SELECT 'LINESTRING(100 150,50 60, 70 80, 160 170)'::geometry As geom) As f; 
 -- ST_AsText output MULTIPOINT(100 150,160 170) 
  | 
      
        
         polygon holes with boundary multilinestring 
 SELECT ST_Boundary(geom) FROM (SELECT 'POLYGON (( 10 130, 50 190, 110 190, 140 150, 150 80, 100 10, 20 40, 10 130 ), ( 70 40, 100 50, 120 80, 80 110, 50 90, 70 40 ))'::geometry As geom) As f; 
 -- ST_AsText output MULTILINESTRING((10 130,50 190,110 190,140 150,150 80,100 10,20 40,10 130), (70 40,100 50,120 80,80 110,50 90,70 40)) 
  | 
     
SELECT ST_AsText(ST_Boundary(ST_GeomFromText('LINESTRING(1 1,0 0, -1 1)')));
st_astext
-----------
MULTIPOINT(1 1,-1 1)
SELECT ST_AsText(ST_Boundary(ST_GeomFromText('POLYGON((1 1,0 0, -1 1, 1 1))')));
st_astext
----------
LINESTRING(1 1,0 0,-1 1,1 1)
--Using a 3d polygon
SELECT ST_AsEWKT(ST_Boundary(ST_GeomFromEWKT('POLYGON((1 1 1,0 0 1, -1 1 1, 1 1 1))')));
st_asewkt
-----------------------------------
LINESTRING(1 1 1,0 0 1,-1 1 1,1 1 1)
--Using a 3d multilinestring
SELECT ST_AsEWKT(ST_Boundary(ST_GeomFromEWKT('MULTILINESTRING((1 1 1,0 0 0.5, -1 1 1),(1 1 0.5,0 0 0.5, -1 1 0.5, 1 1 0.5) )')));
st_asewkt
----------
MULTIPOINT(-1 1 1,1 1 0.75)