このトピックでは、ST_Rotate関数について説明します。 この関数は、ジオメトリオブジェクトを反時計回りに特定のラジアンだけ回転させます。
構文
ジオメトリST_Rotate(geometry geomA , float rotRadians);
ジオメトリST_Rotate(geometry geomA , float rotRadians , float x0 , float y0);
ジオメトリST_Rotate(geometry geomA , float rotRadians , geometry pointOrigin);
パラメーター
パラメーター | 説明 |
geomA | 指定するジオメトリオブジェクト。 |
rotRadians | 回転のラジアン。 |
x0 | 回転原点のx座標。 |
y0 | 回転原点のy座標。 |
pointOrigin | 回転の原点を表すポイントオブジェクト。 |
説明
- 回転原点を指定しない場合、点 (0 0) 点が回転原点として使用されます。
- この関数は、円形ストリング、カーブ、多面体サーフェス、三角形、三角形不規則ネットワーク (TIN) サーフェス、および3Dオブジェクトをサポートします。
例
- 次のステートメントを実行して、ジオメトリオブジェクトを180度回転させます。
SELECT ST_AsEWKT(ST_Rotate('LINESTRING (1 2,2 2)'::geometry, pi())); st_asewkt ------------------------- LINESTRING(-1 -2,-2 -2) (1行)
- 次のステートメントを実行して、(-1,-1) 点を回転原点として、ジオメトリオブジェクトを反時計回りに30度回転させます。
SELECT ST_AsEWKT(ST_Rotate('LINESTRING (1 2,2 2)'::geometry, pi()/6,-1,-1)); st_asewkt --------------------------------------------------------------- LINESTRING(-0.767949192431122 2.59807621135332、0.098076211353) 。 . 316 3.09807621135332) (1行)
- 次のステートメントを実行して、重心を回転原点としてジオメトリオブジェクトを時計回りに30度回転させます。
SELECT ST_AsEWKT(ST_Rotate('LINESTRING (1 2,2 2)'::geometry, pi()/6,ST_Centroid('LINESTRING (1 2,2 2)'::geometry))); st_asewkt --------------------------------------------------------- LINESTRING(1.06698729810778 1.75、1.93301270189222 2.25) (1行)