ST_Scale — 使用給定的因子縮放幾何圖形。
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)
;
透過將座標值乘以相應的因子參數,將幾何圖形縮放至新的尺寸。
使用幾何圖形作為 factor
參數的版本,允許傳遞 2d、3dm、3dz 或 4d 點,以設定所有支援維度的縮放因子。 factor
點中缺少的維度相當於不縮放相應的維度。
三幾何圖形變體允許傳遞用於縮放的「偽原點」。這允許「原地縮放」,例如使用幾何圖形的質心作為偽原點。如果沒有偽原點,縮放將相對於實際原點發生,因此所有坐標都只乘以縮放因子。
![]() |
|
在 1.3.4 之前的版本中,如果與包含 CURVES 的幾何圖形一起使用,此函數會崩潰。這在 1.3.4+ 中已修復。 |
可用性:1.1.0。
增強功能:引入了 2.0.0 對多面體表面、三角形和 TIN 的支持。
增強功能:引入了 2.2.0 對縮放所有維度(factor
參數)的支持。
增強功能:引入了 2.5.0 對相對於局部原點縮放(origin
參數)的支持。
此函數支援多面體表面。
此函數支援 3d,且不會丟棄 z 索引。
此方法支援圓形字串和曲線。
此函數支援三角形和三角不規則網路表面 (TIN)。
此函數支援 M 座標。
--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)