Kategorien:

Geodatenfunktionen

ST_AZIMUTH

Gibt bei zwei Punkten den Azimut (im Bogenmaß) des durch die beiden Punkte gebildeten Liniensegments zurück.

Der Azimut ist der Winkel von Norden zum Liniensegment. Der Winkel ist im Uhrzeigersinn positiv und beträgt:

  • 0 für ein nach Norden zeigendes Liniensegment.

  • π/2 für ein nach Osten zeigendes Liniensegment.

  • π für ein nach Süden zeigendes Liniensegment.

  • 3π/2 für ein nach Westen zeigendes Liniensegment.

Wenn sich die beiden Punkte an derselben Stelle befinden, gibt die Funktion NULL zurück.

Auf einer kugelförmigen Erde wird die hier beschriebene Formel verwendet, um den Azimut zu bestimmen.

Vorsicht

Systeme, die ein elliptisches Erdmodell verwenden, verwenden einen komplexeren Algorithmus für den Azimut, der mitunter signifikant unterschiedliche Ergebnisse liefert.

Syntax

ST_AZIMUTH( <geography_expression_1> , <geography_expression_2> )

Argumente

Geografischer_Ausdruck_1

Ein GEOGRAPHY-Objekt, das ein Punkt ist.

Geografischer_Ausdruck_2

Ein GEOGRAPHY-Objekt, das ein Punkt ist.

Rückgabewerte

Gibt einen Wert vom Typ REAL zurück, der den Azimut im Bogenmaß wiedergibt.

Nutzungshinweise

  • Gibt NULL zurück, wenn ein oder beide Eingabepunkte NULL sind.

Beispiele

Das folgende Beispiel gibt den Azimut im Bogenmaß für zwei Punkte zurück, die ein nach Süden zeigendes Liniensegment bilden:

SELECT ST_AZIMUTH(
    TO_GEOGRAPHY('POINT(0 1)'),
    TO_GEOGRAPHY('POINT(0 0)')
);
+---------------------------------+
|                     ST_AZIMUTH( |
|     TO_GEOGRAPHY('POINT(0 1)'), |
|      TO_GEOGRAPHY('POINT(0 0)') |
|                               ) |
|---------------------------------|
|                     3.141592654 |
+---------------------------------+

Im folgenden Beispiel wird der Azimut in Grad für zwei Punkte zurückgegeben, die ein nach Nordosten zeigendes Liniensegment bilden:

SELECT DEGREES(ST_AZIMUTH(
    TO_GEOGRAPHY('POINT(0 1)'),
    TO_GEOGRAPHY('POINT(1 2)')
));
+---------------------------------+
|             DEGREES(ST_AZIMUTH( |
|     TO_GEOGRAPHY('POINT(0 1)'), |
|      TO_GEOGRAPHY('POINT(1 2)') |
|                              )) |
|---------------------------------|
|                    44.978182941 |
+---------------------------------+