通过将坐标乘以相应的缩放因子,将Geometry对象缩放为新的大小。
语法
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);
参数
参数名称 | 描述 |
---|---|
geomA/geom | 目标Geometry对象。 |
xFactor | X因子。 |
yFactor | Y因子。 |
zFactor | Z因子。 |
factor | 缩放对象。 |
origin | 缩放原点。 |
描述
- 允许factor对象传入2d,3dm,3dz或4d的Point对象以设置所有支持维度的缩放比例因子。缺失的维度将视为不进行缩放。
- 该函数支持Circular Strings、Curves、Polyhedral surfaces、Triangles、Triangulated Irregular Network Surfaces(TIN)和3D对象。
- 该函数支持带有M值的对象。
- 当传入缩放原点时,允许就地缩放。例如,使用Geometry的质心作为缩放原点。如果不设置缩放原点,则相对于实际原点进行缩放,因此所有坐标仅乘以缩放因子。
示例
- 默认调用:
SELECT ST_AsText(ST_Scale('LINESTRING(2 1,1 1)'::geometry,2,2)); st_astext --------------------- LINESTRING(4 2,2 2) (1 row)
- 使用缩放对象:
SELECT ST_AsText(ST_Scale('LINESTRING(2 1,1 1)'::geometry,'POINT(2 2)'::geometry)); st_astext --------------------- LINESTRING(4 2,2 2) (1 row)
- 使用缩放原点的效果对比:
SELECT ST_Scale(g,factor), ST_Scale(g,factor,'POINT(2 1)'::geometry),g from (select 'LINESTRING(2 1,1 1,1 2)'::geometry as g,'POINT(3 3)'::geometry as factor) as t;