st_azimuth-Funktion

Gilt für:check marked yes Databricks SQL check marked yes Databricks Runtime 18.0 und höher

Von Bedeutung

Unterstützung für GEOGRAFIE-Werte befindet sich in der öffentlichen Vorschau. Die Unterstützung für GEOMETRY-Werte ist allgemein verfügbar.

Hinweis

Dieses Feature ist in Databricks SQL Classic Warehouses nicht verfügbar. Weitere Informationen zu Databricks SQL Warehouses finden Sie unter SQL Warehouse-Typen.

Gibt den nordbezogenen Azimut vom ersten Punkt zum zweiten Punkt im Bogenmaß [0, 2π) an.

Syntax

st_azimuth ( geoExpr1, geoExpr2 )

Arguments

  • geoExpr1: Der erste GEOGRAPHY oder GEOMETRY Wert.
  • geoExpr2: Der zweite GEOGRAPHY- oder GEOMETRY-Wert.

Rückkehr

Gibt einen DOUBLE Wert zurück, der dem nordbasierten Azimut von dem ersten Punkt bis zum zweiten entspricht. Das Ergebnis ist in Radiant angegeben im Bereich [0, 2π).

Die Eingaben müssen entweder zwei GEOGRAPHY oder zwei GEOMETRY Werte sein; anderenfalls wird ein DATATYPE_MISMATCH-Fehler zurückgegeben. Beide Eingabewerte werden als Punkte erwartet, andernfalls ein ST_INVALID_ARGUMENT. INVALID_TYPE Fehler wird zurückgegeben.

Wenn die 2D-Projektionen der beiden Punkte gleich sind, ist der zurückgegebene Azimuth null.

NULL wird zurückgegeben, wenn eines der beiden Eingabepunkte leer ist.

Fehlerbedingungen

  • Wenn geoExpr1 der Typ GEOGRAPHY ist und geoExpr2 vom Typ GEOMETRYist oder umgekehrt, gibt die Funktion DATATYPE_MISMATCH zurück.
  • Wenn einer der beiden Eingabegeometrien kein Punkt ist, gibt die Funktion ST_INVALID_ARGUMENT.INVALID_TYPE zurück.
  • Wenn die beiden Eingabegeometrien unterschiedliche SRID-Werte aufweisen, gibt die Funktion ST_DIFFERENT_SRID_VALUES zurück.

Examples

-- The inputs are `GEOMETRY` values. The output (Cartesian azimuth) is displayed in degrees.
> SELECT round(st_azimuth(st_geomfromtext('POINT(0 45)'), st_geomfromtext('POINT(1 46)')) * 180.0 / pi(), 3);
  45.0

-- The inputs are `GEOGRAPHY` values. The output (geographic azimuth on the WGS84 ellipsoid) is displayed in degrees.
> SELECT round(st_azimuth(st_geogfromtext('POINT(0 45)'), st_geogfromtext('POINT(1 46)')) * 180.0 / pi(), 3);
  34.76