通過將座標乘以相應的縮放因子,將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;
