名前

ST_TransScale — 与えられた係数とオフセットでジオメトリを変換します。

概要

geometry ST_TransScale(geometry geomA, float deltaX, float deltaY, float XFactor, float YFactor);

説明

deltaXとdeltaY引数を使ってジオメトリを移動させ、XFactor,YFactor引数で拡大縮小させます。2次元でのみ動作します。

[注記]

ST_TransScale(geomA, deltaX, deltaY, XFactor, YFactor)ST_Affine(geomA, XFactor, 0, 0, 0, YFactor, 0, 0, 0, 1, deltaX*XFactor, deltaY*YFactor, 0)の短縮版です。

[注記]

1.3.4より前では、曲線を含むジオメトリで使用すると、この関数はクラッシュします。これは1.3.4以上で訂正されています。

Availability: 1.1.0

この関数は3次元に対応し、Z値を削除しません。

このメソッドは曲線ストリングと曲線に対応しています。

Code
SELECT ST_TransScale('LINESTRING(1 2 3,1 1 1)', 0.5, 1, 1, 2);
出力:
LINESTRING(1.5 6 3,1.5 4 1)
Figure
Geometry figure for visual-st-transscale-01

この例ではポイントにポイントへのバッファーで近似円を作り、曲線に変換して、1,2に移動させ、3,4倍にします。

Code
SELECT ST_TransScale(ST_LineToCurve(ST_Buffer('POINT(234 567)', 3)), 1, 2, 3, 4);
出力:
CURVEPOLYGON(CIRCULARSTRING(714 2276,696 2276,714 2276))
Figure
Geometry figure for visual-st-transscale-02

関連情報

ST_Affine, ST_Translate