名前

ST_Rotate — ジオメトリを原点について回転させます。

概要

geometry ST_Rotate(geometry geomA, float rotRadians);

geometry ST_Rotate(geometry geomA, float rotRadians, float x0, float y0);

geometry ST_Rotate(geometry geomA, float rotRadians, geometry pointOrigin);

説明

ジオメトリを原点について反時計回りにrotRadiasnぶん回転させます。原点はPOINTジオメトリか、xとyの座標値を指定します。原点を指定しない場合にはPOINT(0,0)について回転させます。

Enhanced: 2.0.0 多面体サーフェス対応、三角対応、TIN対応が導入されました。

Enhanced: 2.0.0 回転の原点を指定するパラメーターを追加しました。

Availability: 1.1.2 RotateからST_Rotateに名称変更しました。

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

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

この関数は多面体サーフェスに対応しています。

この関数は三角形と不規則三角網 (TIN)に対応しています。

この例ではジオメトリーを180°回転させます。

Code
SELECT ST_Rotate('LINESTRING (50 160,50 50,100 50)'::geometry, pi());
出力:
LINESTRING(-50 -160,-50 -50,-100 -50)
Figure
Geometry figure for visual-st-rotate-01

この例ではジオメトリーをx=50, y=160を原点にして反時計回りで30°回転させます。

Code
SELECT ST_Rotate('LINESTRING (50 160,50 50,100 50)'::geometry, pi()/6, 50, 160);
出力:
LINESTRING(50 160,105 64.737206,148.30127 89.737206)
Figure
Geometry figure for visual-st-rotate-02

この例ではジオメトリーを重心を原点として時計回りに60°回転させます。

Code
SELECT ST_Rotate(geom, -pi()/3, ST_Centroid(geom))
FROM (SELECT 'LINESTRING (50 160,50 50,100 50)'::geometry AS geom) AS foo;
出力:
LINESTRING(116.4225 130.6721,21.1597 75.6721,46.1597 32.3708)
Figure
Geometry figure for visual-st-rotate-03