본문 바로가기

MySQL/geometry

mysql. st_bearing funtion

[1. 개요]

mysql 로 geometry 중, 특히 point 를 다룰 때 두 점의 bearing 을 구해야 할 때가 있음.

=> 두 bearing 을 이용해서 회전 각도 구할 때도,


[2. 코드]

# input
# pt1, pt2 : POINT
# pt1 -> pt2 의 bearing 을 반환.
# st_bearing

BEGIN

SET @lon2 = ST_X(pt2);
SET @lon1 = ST_X(pt1);
SET @lat2 = ST_Y(pt2);
SET @lat1 = ST_Y(pt1);

RETURN (360.0 + 
      DEGREES(ATAN2(
       SIN(RADIANS(@lon2-@lon1))*COS(RADIANS(@lat2)),
       COS(RADIANS(@lat1))*SIN(RADIANS(@lat2))-SIN(RADIANS(@lat1))*COS(RADIANS(@lat2))*
            COS(RADIANS(@lon2-@lon1))
      ))
     ) % 360.0;

END

 


[. 참조]