Name

ST_Angle — Gibt den Winkel zwischen 3 Punkten oder zwischen 2 Vektoren (4 Punkte oder 2 Linien) zurück.

Synopsis

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

float ST_Angle(geometry line1, geometry line2);

Beschreibung

Gibt die größte 3-dimensionale Distanz zwischen zwei geometrischen Objekten als Linie zurück

Variante 1: berechnet den Winkel, der von den Punkten P1-P2-P3 eingeschlossen wird. Wenn ein 4. Punkt vorgesehen ist, werden die Winkel P1-P2 und P3-P4 berechnet

Variante 2: berechnet den Winkel zwischen zwei Vektoren S1-E1 und S2-E2, die durch die Anfangs- und Endpunkte der Eingabelinien definiert sind

Das Ergebnis wird in Radiant ausgegeben. Wie im folgenden Beispiel gezeigt, kann mit der in PostgreSQL integrierten Funktion "degrees()" von der Einheit Radiant auf die Einheit Grad umgerechnet werden.

ST_Angle(P1,P2,P3) = ST_Angle(P2,P1,P2,P3)

Verfügbarkeit: 2.5.0

Beispiele

Längste Strecke zwischen Polygon und Polygon

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

 degrees
---------
     270

Winkel zwischen Vektoren, die durch vier Punkte definiert sind

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

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

Winkel zwischen Vektoren, die durch die Anfangs- und Endpunkte von Linien definiert sind

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

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

Siehe auch

ST_Azimuth