ST_Angle
ST_Angle returns the angle in radians between points measured clockwise as follows:
If three points are input, then the returned angle P1-P2-P3 is measured as if the angle was obtained by rotating from P1 to P3 around P2 clockwise.
If four points are input, then the returned clockwise angle formed by the directed lines P1-P2 and P3-P4 is returned. If the input is a degenerate case (that is, P1 equals P2, or P3 equals P4), then null is returned.
The return value is in radians and in the range [0, 2π).
ST_Angle operates on 2D projections of the input geometries.
Syntax
ST_Angle(geom1, geom2, geom3)
ST_Angle(geom1, geom2, geom3, geom4)
Arguments
- geom1
-
A value of data type
GEOMETRY
or an expression that evaluates to aGEOMETRY
type. The subtype must bePOINT
. - geom2
-
A value of data type
GEOMETRY
or an expression that evaluates to aGEOMETRY
type. The subtype must bePOINT
. - geom3
-
A value of data type
GEOMETRY
or an expression that evaluates to aGEOMETRY
type. The subtype must bePOINT
. - geom4
-
A value of data type
GEOMETRY
or an expression that evaluates to aGEOMETRY
type. The subtype must bePOINT
.
Return type
DOUBLE PRECISION
.
If geom1 equals geom2, or geom2 equals geom3, then a null is returned.
If geom1, geom2, geom3, or geom4 is null, then a null is returned.
If any of geom1, geom2, geom3, or geom4 is the empty point, then an error is returned.
If geom1, geom2, geom3, and geom4 don't have the same value for the spatial reference system identifier (SRID), then an error is returned.
Examples
The following SQL returns the angle converted to degrees of three input points.
SELECT ST_Angle(ST_Point(1,1), ST_Point(0,0), ST_Point(1,0)) / Pi() * 180.0 AS angle;
angle
---------------
45
The following SQL returns the angle converted to degrees of four input points.
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