ST_Angle

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

语法

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)