通過將坐標乘以相應的縮放因子,將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;
文檔內容是否對您有幫助?