ST_AZIMUTH
ST_AZIMUTH
원점(관측자 위치)을 나타내는 Point와 지정된 Point 사이의 방위각(azimuth)을 라디안 단위로 돌려주는 공간 함수예요. 두 Point 모두 GEOGRAPHY 또는 GEOMETRY 객체여야 해요.
출처: 공식 문서
본문
원점(관측자의 위치)을 나타내는 Point와 지정된 Point가 주어졌을 때 방위각을 라디안으로 반환합니다. 두 Point 모두 GEOGRAPHY 또는 GEOMETRY 객체여야 합니다.
방위각(azimuth)은 원점의 관측자가 북쪽(GEOGRAPHY 객체의 경우) 또는 Y축(GEOMETRY 객체의 경우)을 향하고 있을 때 두 Point 사이의 각도입니다. 각도는 시계 방향으로 양수이며 다음과 같습니다:
- 북쪽을 가리키는 선분이면 0.
- 동쪽을 가리키는 선분이면 π/2.
- 남쪽을 가리키는 선분이면 π.
- 서쪽을 가리키는 선분이면 3π/2.
두 Point가 같은 위치이면 함수는 NULL을 반환합니다.
GEOGRAPHY 객체의 경우 구형 지구에서 여기에 설명된 공식이 방위각을 결정하는 데 사용됩니다.
주의 타원 지구 모델을 사용하는 시스템은 더 복잡한 방위각 알고리즘을 사용하며, 이는 때때로 크게 다른 결과를 산출합니다.
구문 (Syntax)
ST_AZIMUTH( <geography_expression_for_origin> , <geography_expression_for_target> )
ST_AZIMUTH( <geometry_expression_for_origin> , <geometry_expression_for_target> )
인자 (Arguments)
geography_expression_for_origin
원점(관측자가 위치한 곳)을 나타내는 Point인 GEOGRAPHY 객체.
geography_expression_for_target
방위각을 계산하려는 Point인 GEOGRAPHY 객체.
geometry_expression_for_origin
원점(관측자가 위치한 곳)을 나타내는 Point인 GEOMETRY 객체.
geometry_expression_for_target
방위각을 계산하려는 Point인 GEOMETRY 객체.
반환값 (Returns)
라디안 단위의 방위각인 REAL 타입의 값을 반환합니다.
사용 참고 (Usage notes)
- 입력 지리 공간 객체 중 하나가 Point가 아니면 함수는 오류를 보고합니다.
- 입력 Point 중 하나 또는 둘 다 NULL이면 NULL을 반환합니다.
예제 (Examples)
GEOGRAPHY 예제
다음 예제는 원점 Point(0, 1)와 대상 Point(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 |
+---------------------------------+
다음 예제는 원점 Point(0, 1)와 대상 Point(1, 2)에 대한 도(degrees) 단위의 방위각을 반환합니다:
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 |
+---------------------------------+
GEOMETRY 예제
다음 예제는 원점 Point(0, 1)와 대상 Point(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 |
+------------------------------------------------------------------+
다음 예제는 원점 Point(0, 1)와 대상 Point(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 |
+-------------------------------------------------------------------------+
더 알아보기 (Learn more)
- ST_DISTANCE — 두 지리 공간 객체 사이의 거리
- ST_ANGLE — 각도
- DEGREES — 라디안을 도로 변환
- 지리 공간 데이터 타입