ST_Angle
ST_Angle 返回顺时针方向测量的点之间的角度(以弧度为单位),如下所示:
如果输入三个点,则测量返回的角度 P1-P2-P3,就好像通过围绕 P2 顺时针从 P1 旋转到 P3 获得角度一样。
如果输入四个点,则返回有向线段 P1-P2 和 P3-P4 形成的返回顺时针角度。如果输入为退化情况(即,P1 等于 P2,或 P3 等于 P4),则返回 null。
返回值以弧度为单位且在 [0, 2π) 范围内。
ST_Angle 对输入几何体的 2D 投影进行操作。
语法
ST_Angle(geom1, geom2, geom3)
ST_Angle(geom1, geom2, geom3, geom4)
参数
- geom1
-
一个
GEOMETRY
数据类型的值,或一个计算结果为GEOMETRY
类型的表达式。子类型必须是POINT
。 - geom2
-
一个
GEOMETRY
数据类型的值,或一个计算结果为GEOMETRY
类型的表达式。子类型必须是POINT
。 - geom3
-
一个
GEOMETRY
数据类型的值,或一个计算结果为GEOMETRY
类型的表达式。子类型必须是POINT
。 - geom4
-
一个
GEOMETRY
数据类型的值,或一个计算结果为GEOMETRY
类型的表达式。子类型必须是POINT
。
返回类型
DOUBLE PRECISION
.
如果 geom1 等于 geom2,或者 geom2 等于 geom3,则会返回 null。
如果 geom1、geom2、geom3 或 geom4 为 null,则会返回 null。
如果 geom1、geom2、geom3 或 geom4 中的任何一个为空点,则返回一个错误。
如果 geom1、geom2、geom3 和 geom4 不具有相同的空间参考系统标识符 (SRID) 值,则返回一个错误。
示例
以下 SQL 返回转换为三个输入点度数的角度。
SELECT ST_Angle(ST_Point(1,1), ST_Point(0,0), ST_Point(1,0)) / Pi() * 180.0 AS angle;
angle
---------------
45
以下 SQL 返回转换为四个输入点度数的角度。
SELECT ST_Angle(ST_Point(1,1), ST_Point(0,0), ST_Point(1,0), ST_Point(2,0)) / Pi() * 180.0 AS angle;
angle
---------------
225