본문 바로가기

MySQL/geometry

mysql. haversine_distnace function

[1. 개요]

mysql 로 geometry 중, 특히 point 를 다룰 때, 가끔 두 점간의 거리가 필요할 때가 있다.

그러나, 기본 함수로 제공하지 않는 것으로 보임. (있나?, 버전에 따라서?)

 

함수로 작성해서 필요할 때 사용하기 위해 정리


[2. 코드]

POINT 를 입력으로 받아서 두 점간 거리를 meter 단위로 반환.

# input
# pt1, pt2 : POINT
# st_distance_sphere

BEGIN
RETURN 6371000 * 2 * ASIN(SQRT(
       POWER(SIN((ST_Y(pt2) - ST_Y(pt1)) * pi()/180 / 2),
       2) + COS(ST_Y(pt1) * pi()/180 ) * COS(ST_Y(pt2) *
       pi()/180) * POWER(SIN((ST_X(pt2) - ST_X(pt1)) *
       pi()/180 / 2), 2) ));
END

 


[3. ref]

'MySQL > geometry' 카테고리의 다른 글

mysql. st_bearing funtion  (0) 2024.03.26
wgs84 좌표 관련 연산 (거리, bearing)  (1) 2024.03.26
[좀 부족한데] mysql 공간 쿼리 사용하기  (0) 2024.02.19