카테고리:

지리 공간 함수

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