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
パラメータでジオメトリを取る形式では、2次元、3次元 (XYZ. XYM)、4次元のポイントで、全ての対応する次元のスケーリングの乗数を設定することができます。factor
ポイントの欠けた次元については、対応する次元は拡大縮小をしないのと等価になります。
三つのジオメトリを与える形式では、拡大縮小に「仮原点」を渡すことができます。これにより、たとえば、仮原点としてジオメトリの重心を使うといった、「適切な位置での拡大縮小」が可能となります。仮原点を使わない場合には、拡大縮小は実際の原点からの位置で行われるので、全ての座標は拡大縮小係数との積になります。
1.3.4より前では、曲線を含むジオメトリで使用すると、この関数はクラッシュします。これは1.3.4以上で訂正されています。 |
Availability: 1.1.0
Enhanced: 2.0.0 多面体サーフェス対応、三角対応、TIN対応が導入されました。
Enhanced: 2.2.0 全ての次元の拡大縮小 (factor
パラメータ)への対応が導入されました。
Enhanced: 2.5.0 局所原点 (origin
パラメータ)を使った拡大縮小への対応を導入しました。
この関数は多面体サーフェスに対応しています。
この関数は3次元に対応し、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)