ST_Scale
Name
ST_Scale — Scales a geometry by given factors.
Synopsis
    
     geometry
     
      ST_Scale
     
     (
    
    geometry
    
     geomA
    
    , float
    
     XFactor
    
    , float
    
     YFactor
    
    , float
    
     ZFactor
    
    
     )
    
    ;
   
    
     geometry
     
      ST_Scale
     
     (
    
    geometry
    
     geomA
    
    , float
    
     XFactor
    
    , float
    
     YFactor
    
    
     )
    
    ;
   
    
     geometry
     
      ST_Scale
     
     (
    
    geometry
    
     geom
    
    , geometry
    
     factor
    
    
     )
    
    ;
   
    
     geometry
     
      ST_Scale
     
     (
    
    geometry
    
     geom
    
    , geometry
    
     factor
    
    , geometry
    
     origin
    
    
     )
    
    ;
   
Description
Scales the geometry to a new size by multiplying the ordinates with the corresponding factor parameters.
   The version taking a geometry as the
   
    factor
   
   parameter
allows passing a 2d, 3dm, 3dz or 4d point to set scaling factor for all
supported dimensions. Missing dimensions in the
   
    factor
   
   point are equivalent to no scaling the corresponding dimension.
  
The three-geometry variant allows a "false origin" for the scaling to be passed in. This allows "scaling in place", for example using the centroid of the geometry as the false origin. Without a false origin, scaling takes place relative to the actual origin, so all coordinates are just multipled by the scale factor.
       
      | 
     |
| 
       Prior to 1.3.4, this function crashes if used with geometries that contain CURVES. This is fixed in 1.3.4+  | 
    
Availability: 1.1.0.
Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was introduced.
   Enhanced: 2.2.0 support for scaling all dimension (
   
    factor
   
   parameter) was introduced.
  
   Enhanced: 2.5.0 support for scaling relative to a local origin (
   
    origin
   
   parameter) was introduced.
  
   
    
   
   This function supports Polyhedral surfaces.
  
   
    
   
   This function supports 3d and will not drop the z-index.
  
   
    
   
   This method supports Circular Strings and Curves
  
   
    
   
   This function supports Triangles and Triangulated Irregular Network Surfaces (TIN).
  
   
    
   
   This function supports M coordinates.
  
Examples
--Version 1: scale X, Y, Z
SELECT ST_AsEWKT(ST_Scale(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), 0.5, 0.75, 0.8));
			  st_asewkt
--------------------------------------
 LINESTRING(0.5 1.5 2.4,0.5 0.75 0.8)
--Version 2: Scale X Y
 SELECT ST_AsEWKT(ST_Scale(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), 0.5, 0.75));
			st_asewkt
----------------------------------
 LINESTRING(0.5 1.5 3,0.5 0.75 1)
--Version 3: Scale X Y Z M
 SELECT ST_AsEWKT(ST_Scale(ST_GeomFromEWKT('LINESTRING(1 2 3 4, 1 1 1 1)'),
   ST_MakePoint(0.5, 0.75, 2, -1)));
			       st_asewkt
----------------------------------------
 LINESTRING(0.5 1.5 6 -4,0.5 0.75 2 -1)
--Version 4: Scale X Y using false origin
SELECT ST_AsText(ST_Scale('LINESTRING(1 1, 2 2)', 'POINT(2 2)', 'POINT(1 1)'::geometry));
      st_astext
---------------------
 LINESTRING(1 1,3 3)