본문 바로가기

MySQL/geometry

(4)
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))-..
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((S..
wgs84 좌표 관련 연산 (거리, bearing) [1. 개요] wgs84 좌표를 이용한 몇가지 연산에 대한 내용 정리 두 점간의 거리 구하기 두 점의 bearing 구하기 [2. haversine distance] 주어진 지점에 대해 구 (Sphere) 의 두 지점 사이의 최단거리(great-circle distance) 를 구하는 공식. wgs84 는 평면 좌표가 아니므로, 일반적인 거리 공식으로 두 점간의 거리를 구할 수 없다. haversine formula 는 두 점간의 거리가 최단 거리가 되는 것을 보장한다. [2.1 파이썬으로 구현하기] https://testkernelv2.tistory.com/676 [2.2 golang 으로 구현하기] https://testkernelv2.tistory.com/678 [2.3 mysql 로 구현하기] h..
[좀 부족한데] mysql 공간 쿼리 사용하기 [1. 개요] mysql 에서 공간 연산을 사용하기 위한 첫번째 단계 Point, Polyline, Polygon 등을 생성하여 table 에 insert 하는 방법 정리 [2. WKT 로 geometry 작성하기] Point ST_GEOMFROMTEXT('Point(127.123456 36.654321)', 4326) X, Y 순으로 적는다. ## (경도, 위도) or (Lon, Lat) X, Y 사이에 comma 가 없어야 한다. Polyline ST_GEOMFROMTEXT('LINESTRING(X Y, X Y, ..., X Y)', 4326) Polygon ST_GEOMFROMTEXT('Polygon( (X Y, X Y, X Y, ..., X Y))', 4326) Polyline 과 비슷한 방식으로..