将一个几何对象逆时针旋转指定的角度。
语法
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);
参数
参数名称 | 描述 |
---|---|
geomA | 目标Geometry对象。 |
rotRadians | 旋转的弧度。 |
x0 | 旋转原点的X坐标。 |
y0 | 旋转原点的Y坐标。 |
pointOrigin | 作为旋转原点的Point对象。 |
描述
- 若不指定旋转原点,则以Point(0,0)作为旋转原点。
- 该函数支持Circular Strings、Curves、Polyhedral surfaces、Triangles、Triangulated Irregular Network Surfaces(TIN)和3D对象。
示例
- 旋转180度:
SELECT ST_AsEWKT(ST_Rotate('LINESTRING (1 2,2 2)'::geometry, pi())); st_asewkt ------------------------- LINESTRING(-1 -2,-2 -2) (1 row)
- 以(-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 row)
- 以中心点为旋转原点,顺时针旋转90度:
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 row)