返回三个坐标点,或两个向量(四个坐标点或两条线)之间的夹角。
语法
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)