Name

ST_Angle — Renvoie l'angle entre deux vecteurs définis par 3 ou 4 points, ou 2 lignes.

Synopsis

float ST_Angle(geometry point1, geometry point2, geometry point3, geometry point4);

float ST_Angle(geometry line1, geometry line2);

Description

Calcule l'angle dans le sens des aiguilles d'une montre entre deux vecteurs.

Variante 1: calcule l'angle formé par les points P1-P2-P3. Si un quatrième point est fourni, elle calcule l'angle formé par les points P1-P2 et P3-P4

Variante 2: calcule l'angle entre deux vecteurs S1-E1 et S2-E2, définis par les points de départ et d'arrivée des lignes d'entrée

Le résultat est un angle positif compris entre 0 et 2π radians. Le résultat en radians peut être converti en degrés à l'aide de la fonction PostgreSQL degrees().

Notez que ST_Angle(P1,P2,P3) = ST_Angle(P2,P1,P2,P3).

Disponibilité : 2.5.0

Exemples

Angle entre trois points

SELECT degrees( ST_Angle('POINT(0 0)', 'POINT(10 10)', 'POINT(20 0)') );

 degrees
---------
     270

Angle entre les vecteurs définis par quatre points

SELECT degrees( ST_Angle('POINT (10 10)', 'POINT (0 0)', 'POINT(90 90)', 'POINT (100 80)') );

      degrees
-------------------
 269.9999999999999

Angle entre les vecteurs définis par les points de départ et d'arrivée des lignes

SELECT degrees( ST_Angle('LINESTRING(0 0, 0.3 0.7, 1 1)', 'LINESTRING(0 0, 0.2 0.5, 1 0)') );

      degrees
--------------
           45

Voir aussi

ST_Azimuth