ST_Angle - Amazon Redshift

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。

如果 geom1geom2geom3geom4 为 null,则会返回 null。

如果 geom1geom2geom3geom4 中的任何一个为空点,则返回一个错误。

如果 geom1geom2geom3geom4 不具有相同的空间参考系统标识符 (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