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)
;
将几何图形绕原点逆时针旋转 rotRadians 弧度。旋转原点可以指定为 POINT 几何图形,或者指定为 x 和 y 坐标。 如果未指定原点,则几何图形将绕 POINT(0 0) 旋转。
增强功能:2.0.0 版本引入了对多面体表面、三角形和 TIN 的支持。
增强功能:2.0.0 版本添加了用于指定旋转原点的其他参数。
可用性:1.1.2。在 1.2.2 中名称从 Rotate 更改为 ST_Rotate。
此函数支持 3D,并且不会丢弃 z 索引。
此方法支持圆形字符串和曲线。
此函数支持多面体表面。
此函数支持三角形和三角不规则网络表面 (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)