ST_ANGLE
📄字数 722
👁️阅读量 加载中...
功能描述
计算两个向量之间的顺时针角度。
语法格式
sql
DOUBLE ST_ANGLE(GEOMETRY point1, GEOMETRY point2, GEOMETRY point3, GEOMETRY point4);
DOUBLE ST_ANGLE(GEOMETRY point1, GEOMETRY point2, GEOMETRY point3);
DOUBLE ST_ANGLE(GEOMETRY line1, GEOMETRY line2);参数说明
- point1:第一个点。
- point2:第二个点。
- point3:第三个点。
- point4:第四个点。
- line1:第一条线。
- line2:第二条线。
函数返回类型
DOUBLE 类型
使用说明
- 函数 1:计算点 P1-P2-P3 所围成的角度。 如果提供了第四个点则计算角度点 P1-P2 和 P3-P4
- 函数 2:计算两个向量 S1-E1 和 S2-E2 之间的角度,由输入线的起点和终点定义
- 结果是 0 到 2π 弧度之间的正角。 可以使用函数 DEGREES 将弧度结果转换为度数。
- ST_ANGLE(P1,P2,P3) = ST_ANGLE(P2,P1,P2,P3)。
- 如果输入为2条线,则取每条线的收尾点作为4个点。
示例
三点之间的角度:
sql
SQL> SELECT DEGREES( ST_ANGLE('POINT(0 0)', 'POINT(10 10)', 'POINT(20 0)') );
+--------------+
| EXPR1 |
+--------------+
| 2.700000e+02 |
+--------------+
(1 row)由四个点定义的向量之间的角度:
sql
SQL> SELECT DEGREES( ST_ANGLE('POINT (10 10)', 'POINT (0 0)', 'POINT(90 90)', 'POINT (100 80)') );
+--------------+
| EXPR1 |
+--------------+
| 2.700000e+02 |
+--------------+
(1 row)由线的起点和终点定义的向量之间的角度:
sql
SQL> SELECT degrees( ST_Angle('LINESTRING(0 0, 0.3 0.7, 1 1)', 'LINESTRING(0 0, 0.2 0.5, 1 0)') );
+--------------+
| EXPR1 |
+--------------+
| 4.500000e+01 |
+--------------+
(1 row)