카테고리:

지리공간 함수

ST_AZIMUTH

원점(관찰자의 위치)을 나타내는 점과 지정된 점이 주어지면 방위각이 라디안으로 반환됩니다. 두 점 모두 GEOGRAPHY 또는 GEOMETRY 오브젝트여야 합니다.

방위각 은 원점의 관찰자가 북쪽(GEOGRAPHY 오브젝트의 경우) 또는 Y축(GEOMETRY 오브젝트의 경우)을 향할 때 두 점 사이의 각도입니다. 각도는 시계 방향으로 양수이며 다음과 같습니다.

  • 북쪽을 가리키는 직선 세그먼트의 경우 0입니다.

  • 동쪽을 가리키는 직선 세그먼트의 경우 π/2입니다.

  • 남쪽을 가리키는 직선 세그먼트의 경우 π입니다.

  • 서쪽을 가리키는 직선 세그먼트의 경우 3π/2입니다.

두 Point가 같은 위치에 있으면 함수는 NULL을 반환합니다.

GEOGRAPHY 오브젝트의 경우 구형 지구에서 여기에 설명된 수식 을 사용하여 방위각을 결정합니다.

조심

타원형 지구 모델을 사용하는 시스템은 방위각에 대해 더 복잡한 알고리즘 을 사용하며, 이는 때때로 상당히 다른 결과를 산출합니다.

구문

ST_AZIMUTH( <geography_expression_for_origin> , <geography_expression_for_target> ) ST_AZIMUTH( <geometry_expression_for_origin> , <geometry_expression_for_target> ) 
Copy

인자

geography_expression_for_origin

원점(관찰자가 있는 곳)을 나타내는 점인 GEOGRAPHY 오브젝트입니다.

geography_expression_for_target

방위각을 계산하려는 점인 GEOGRAPHY 오브젝트입니다.

geometry_expression_for_origin

원점(관찰자가 있는 곳)을 나타내는 점인 GEOMETRY 오브젝트입니다.

geometry_expression_for_target

방위각을 계산하려는 점인 GEOMETRY 오브젝트입니다.

반환

라디안 단위의 방위각인 REAL 형식 값을 반환합니다.

사용법 노트

  • 입력 지리 공간 오브젝트 중 하나가 점이 아닌 경우 이 함수는 오류를 보고합니다.

  • 입력 지점 중 하나 또는 둘 모두가 NULL인 경우, NULL을 반환합니다.

GEOGRAPHY 예

다음 예에서는 원래 점 (0, 1)과 대상 점 (0, 0)의 방위각을 라디안 단위로 반환합니다.

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

다음 예에서는 원래 점 (0, 1)과 대상 점 (1, 2)의 방위각을 도 단위로 반환합니다.

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 예

다음 예에서는 원래 점 (0, 1)과 대상 점 (0, 0)의 방위각을 라디안 단위로 반환합니다.

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

다음 예에서는 원래 점 (0, 1)과 대상 점 (0.707, 0.707)의 방위각을 도 단위로 반환합니다.

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