- Categorias:
ST_AZIMUTH¶
Dado dois pontos que são objetos GEOGRAPHY, retorna o azimute (em radianos) do segmento de linha formado pelos dois pontos.
O azimute é o ângulo do norte ao segmento de linha. O ângulo é positivo no sentido horário e é:
0 para um segmento de linha que aponta para o norte.
π/2 para um segmento de linha que aponta para o leste.
π para um segmento de linha que aponta para o sul.
3π/2 para um segmento de linha que aponta para o oeste.
Se os dois pontos forem o mesmo local, a função retornará NULL.
Em uma Terra esférica, a fórmula descrita aqui é usada para determinar o azimute.
Cuidado
Sistemas que utilizam um modelo elíptico da Terra utilizam um algoritmo mais complexo para azimute, que ocasionalmente produz resultados significativamente diferentes.
Sintaxe¶
ST_AZIMUTH( <geography_expression_1> , <geography_expression_2> )
Argumentos¶
geography_expression_1
Um objeto GEOGRAPHY que é um ponto.
geography_expression_2
Um objeto GEOGRAPHY que é um ponto.
Retornos¶
Retorna um valor do tipo REAL que é o azimute em radianos.
Notas de uso¶
Retorna NULL se um ou ambos os pontos de entrada forem NULL.
Exemplos¶
O exemplo a seguir retorna o azimute em radianos para dois pontos que formam um segmento de linha que aponta para o sul:
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 | +---------------------------------+
O exemplo seguinte retorna o azimute em graus para dois pontos que formam um segmento de linha que aponta para o nordeste:
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 | +---------------------------------+