This topic describes the ST_Angle function. This function calculates the angle between three points or between two vectors that are depicted by four points or by two lines.

## Syntax

```
float ST_Angle(geometry point1 , geometry point2 , geometry point3 , geometry point4);
float ST_Angle(geometry line1 , geometry line2);
```

## Parameters

Parameter | Description |
---|---|

point1 | The first point that you want to specify. |

point2 | The second point that you want to specify. |

point3 | The third point that you want to specify. |

point4 | The fourth point that you want to specify. |

line1 | The first line that you want to specify. |

line2 | The second line that you want to specify. |

## Description

- If you specify three points, which are named P1, P2, and P3 in sequence, this function
calculates the angle clockwise from P1 to P2 and then to P3.
`ST_Angle(P1,P2,P3) = ST_Angle(P2,P1,P2,P3)`

- If you specify four points, which are named P1, P2, P3, and P4 in sequence, this function calculates the angle clockwise from P1 to P2 and from P3 to P4.
- The angle that is returned is always positive, ranging between 0 and 2π radians. You can use the degrees() function to convert the angle into a degree.
- If you specify two lines, this function considers the closing points of the lines as four points.

## Examples

Calculate the angle between two lines.

```
SELECT degrees(ST_Angle('LINESTRING(0 0,0 1)'::geometry,'LINESTRING(0 0,1 1)'::geometry));
degrees
---------
45
(1 row)
```