geo_angle()

Calcola l'angolo in senso orario in radianti tra due linee sulla Terra. La prima riga è [point1, point2] e la seconda riga è [point2, point3].

Sintassi

geo_angle(, p1_longitude, p1_latitude, p2_longitude, p2_latitude, p3_longitudep3_latitude)

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Tipo Obbligatoria Descrizione
p1_longitude real ✔️ Valore della longitudine in gradi della prima coordinata geospaziale. Un valore valido è compreso nell'intervallo [-180, +180].
p1_latitude real ✔️ Valore della latitudine in gradi della prima coordinata geospaziale. Un valore valido è compreso nell'intervallo [-90, +90].
p2_longitude real ✔️ Valore della longitudine in gradi della seconda coordinata geospaziale. Un valore valido è compreso nell'intervallo [-180, +180].
p2_latitude real ✔️ Valore della latitudine in gradi della seconda coordinata geospaziale. Un valore valido è compreso nell'intervallo [-90, +90].
p3_longitude real ✔️ Valore della longitudine in gradi della seconda coordinata geospaziale. Un valore valido è compreso nell'intervallo [-180, +180].
p3_latitude real ✔️ Valore della latitudine in gradi della seconda coordinata geospaziale. Un valore valido è compreso nell'intervallo [-90, +90].

Restituisce

Angolo in radianti compreso nell'intervallo [0, 2pi) tra due righe [p1, p2] e [p2, p3]. L'angolo viene misurato da CW dalla prima riga alla Seconda riga.

Nota

  • Le coordinate geospaziali vengono interpretate come rappresentate dal sistema di riferimento delle coordinate WGS-84 .
  • Il datum geodetico usato per misurare la distanza sulla Terra è una sfera. I bordi della linea sono geodesici sulla sfera.
  • Se le coordinate non sono valide, la query genererà un risultato Null.
  • Se point1 è uguale a point2, la query genererà un risultato Null.
  • Se point2 è uguale a point3, la query genererà un risultato Null.
  • Se point1 e point2 sono antipodali, la query produrrà un risultato Null.
  • Se point2 e point3 sono antipodali, la query produrrà un risultato Null.

Esempio

Nell'esempio seguente viene calcolato l'angolo in radianti.

print angle_in_radians = geo_angle(0, 10, 0,5, 3,-10)

Output

angle_in_radians
2.94493843406882

Nell'esempio seguente viene calcolato l'angolo in gradi.

let angle_in_radians = geo_angle(0, 10, 0,5, 3,-10);
print angle_in_degrees = degrees(angle_in_radians)

Output

angle_in_degrees
168.732543198009

Nell'esempio seguente viene restituito null perché il primo punto è uguale al 2° punto.

print is_null = isnull(geo_angle(0, 10, 0, 10, 3, -10))

Output

is_null
True