- Kategorien:
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> )
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 | +---------------------------------+
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 | +---------------------------------+
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 |
+------------------------------------------------------------------+
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 |
+-------------------------------------------------------------------------+