Kategorien:

Geodatenfunktionen

ST_AZIMUTH

Gibt bei einem Punkt, der den Ursprung (die Position des Beobachters) darstellt, und einem angegebenen Punkt den Azimut im Bogenmaß zurück. Beide Punkte müssen entweder GEOGRAPHY- oder GEOMETRY-Objekte sein.

Der Azimut ist der Winkel zwischen den beiden Punkten, wenn der Beobachter am Ursprung nach Norden (für GEOGRAPHY-Objekte) oder zur Y-Achse (für GEOMETRY-Objekte) blickt. 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.

Bei einem GEOGRAPHY-Objekt 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_for_origin> , <geography_expression_for_target> )
ST_AZIMUTH( <geometry_expression_for_origin> , <geometry_expression_for_target> )
Copy

Argumente

geography_expression_for_origin

Ein GEOGRAPHY-Objekt, das ein Punkt ist, der den Ursprung repräsentiert (wo sich der Beobachter befindet).

geography_expression_for_target

Ein GEOGRAPHY-Objekt, das ein Punkt ist, für den Sie den Azimut berechnen möchten.

geometry_expression_for_origin

Ein GEOMETRY-Objekt, das ein Punkt ist, der den Ursprung repräsentiert (wo sich der Beobachter befindet).

geometry_expression_for_target

Ein GEOMETRY-Objekt, das ein Punkt ist, für den Sie den Azimut berechnen möchten.

Rückgabewerte

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

Nutzungshinweise

  • Wenn eines der eingegebenen Geodatenobjekte kein Punkt ist, meldet die Funktion einen Fehler.

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

Beispiele

GEOGRAPHY-Beispiele

Das folgende Beispiel gibt den Azimut im Bogenmaß für einen Ursprungspunkt (0, 1) und einen Zielpunkt (0, 0) zurück:

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 |
+---------------------------------+
Copy

Das folgende Beispiel gibt den Azimut in Grad für einen Ursprungspunkt (0, 1) und einen Zielpunkt (1, 2) zurück:

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 |
+---------------------------------+
Copy

GEOMETRY-Beispiele

Das folgende Beispiel gibt den Azimut im Bogenmaß für einen Ursprungspunkt (0, 1) und einen Zielpunkt (0, 0) zurück:

SELECT ST_AZIMUTH(
    TO_GEOMETRY('POINT(0 1)', TO_GEOMETRY('POINT(0 0)')
);

+------------------------------------------------------------------+
| ST_AZIMUTH(TO_GEOMETRY('POINT(0 1)'), TO_GEOMETRY('POINT(0 0)')) |
|------------------------------------------------------------------|
| 3.141592654                                                      |
+------------------------------------------------------------------+
Copy

Das folgende Beispiel gibt den Azimut in Grad für einen Ursprungspunkt (0, 1) und einen Zielpunkt (0,707, 0,707) zurück:

SELECT ST_AZIMUTH(
    TO_GEOMETRY('POINT(0 0)', TO_GEOMETRY(0.707 0.707')
);

+-------------------------------------------------------------------------+
| ST_AZIMUTH(TO_GEOMETRY('POINT(0 0)'), TO_GEOMETRY('POINT(0.707 0.707')) |
|-------------------------------------------------------------------------|
| 0.7853981634                                                            |
+-------------------------------------------------------------------------+
Copy