返回三个坐标点,或两个向量(四个坐标点或两条线)之间的夹角。

语法

float  ST_Angle(geometry  point1 , geometry  point2 , geometry  point3 , geometry  point4);
float  ST_Angle(geometry  line1 , geometry  line2);

参数

参数名称 描述
point1 第一个点。
point2 第二个点。
point3 第三个点。
point4 第四个点。
line1 第一条线。
line2 第二条线。

描述

  • 对于3个点,计算按顺时针方向,沿P1-P2-P3测得的角度。
    ST_Angle(P1,P2,P3) = ST_Angle(P2,P1,P2,P3)
  • 对于4个点,计算按顺时针方向,沿P1-P2,P3-P4测得的角度。
  • 结果始终为正,介于0和2π弧度之间。可以使用degree函数转换为角度。
  • 如果输入为2条线,则取每条线的收尾点作为4个点。

示例

计算两条线的夹角:
SELECT degrees(ST_Angle('LINESTRING(0 0,0 1)'::geometry,'LINESTRING(0 0,1 1)'::geometry));
 degrees
---------
      45
(1 row)