Name

ST_Rotate — 绕原点旋转几何体。

Synopsis

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);

描述

围绕原点逆时针旋转几何体 rotRadians。 旋转原点可以指定为 POINT 几何图形,也可以指定为 x 和 y 坐标。 如果未指定原点,则几何图形将围绕 POINT(0 0) 旋转。

增强功能:引入了2.0.0 对多面体曲面、三角形和三角网的支持。

增强:2.0.0 添加了用于指定旋转原点的附加参数。

可用性:1.1.2。 1.2.2 中名称从 Rotate 更改为 ST_Rotate

该函数支持 3d 并且不会丢失 z-index。

此方法支持圆形字符串和曲线。

该函数支持多面体曲面。

此函数支持三角形和不规则三角网面 (TIN)。

示例

--Rotate 180 degrees
SELECT ST_AsEWKT(ST_Rotate('LINESTRING (50 160, 50 50, 100 50)', pi()));
               st_asewkt
---------------------------------------
 LINESTRING(-50 -160,-50 -50,-100 -50)
(1 row)

--Rotate 30 degrees counter-clockwise at x=50, y=160
SELECT ST_AsEWKT(ST_Rotate('LINESTRING (50 160, 50 50, 100 50)', pi()/6, 50, 160));
                                 st_asewkt
---------------------------------------------------------------------------
 LINESTRING(50 160,105 64.7372055837117,148.301270189222 89.7372055837117)
(1 row)

--Rotate 60 degrees clockwise from centroid
SELECT ST_AsEWKT(ST_Rotate(geom, -pi()/3, ST_Centroid(geom)))
FROM (SELECT 'LINESTRING (50 160, 50 50, 100 50)'::geometry AS geom) AS foo;
                           st_asewkt
--------------------------------------------------------------
 LINESTRING(116.4225 130.6721,21.1597 75.6721,46.1597 32.3708)
(1 row)