將一個幾何對象逆時針旋轉指定的角度。

語法

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)
                        
    旋轉180度
  • 以(-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)
                        
    2
  • 以中心點為旋轉原點,順時針旋轉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)
                        
    2