ST_Segmentize
Name
ST_Segmentize — Return a modified geometry/geography having no segment longer than the given distance.
Synopsis
    
     geometry
     
      ST_Segmentize
     
     (
    
    geometry
    
     geom
    
    , float
    
     max_segment_length
    
    
     )
    
    ;
   
    
     geography
     
      ST_Segmentize
     
     (
    
    geography
    
     geog
    
    , float
    
     max_segment_length
    
    
     )
    
    ;
   
Description
   Returns a modified geometry having no segment longer than the
			given
   
    max_segment_length
   
   .  Distance computation is performed in 2d
			only. For geometry, length units are in units of spatial reference.  For geography, units are in meters.
  
Availability: 1.2.2
Enhanced: 3.0.0 Segmentize geometry now uses equal length segments
Enhanced: 2.3.0 Segmentize geography now uses equal length segments
Enhanced: 2.1.0 support for geography was introduced.
   Changed: 2.1.0 As a result of the introduction of geography support: The construct
   
    SELECT ST_Segmentize('LINESTRING(1 2, 3 4)',0.5);
   
   will result in ambiguous function error.  You need to have properly typed object e.g. a geometry/geography column, use ST_GeomFromText, ST_GeogFromText or
   
    SELECT ST_Segmentize('LINESTRING(1 2, 3 4)'::geometry,0.5);
   
  
       
      | 
     |
| 
       This will only increase segments. It will not lengthen segments shorter than max length  | 
    
Examples
SELECT ST_AsText(ST_Segmentize(
ST_GeomFromText('MULTILINESTRING((-29 -27,-30 -29.7,-36 -31,-45 -33),(-45 -33,-46 -32))')
		,5)
);
st_astext
--------------------------------------------------------------------------------------------------
MULTILINESTRING((-29 -27,-30 -29.7,-34.886615700134 -30.758766735029,-36 -31,
-40.8809353009198 -32.0846522890933,-45 -33),
(-45 -33,-46 -32))
(1 row)
SELECT ST_AsText(ST_Segmentize(ST_GeomFromText('POLYGON((-29 28, -30 40, -29 28))'),10));
st_astext
-----------------------
POLYGON((-29 28,-29.8304547985374 37.9654575824488,-30 40,-29.1695452014626 30.0345424175512,-29 28))
(1 row)