mySQL函数根据经纬度计算两点距离

时间:2022-04-01 19:15:17
DROP FUNCTION IF EXISTS func_calcDistance ;
CREATE FUNCTION func_calcDistance(
origLng
DECIMAL(20,6), -- 目的地经度
origLat DECIMAL(20,6), -- 目的地纬度
longitude DECIMAL(20,6), -- 当前所在地点经度
latitude DECIMAL(20,6) -- 当前所在地点纬度
)
RETURNS DOUBLE
BEGIN
DECLARE result DOUBLE DEFAULT 0;

SET result = round(6378.138*2*asin(sqrt(pow(sin(
(origLat
*pi()/180-latitude*pi()/180)/2),2)+cos(origLat*pi()/180)*cos(latitude*pi()/180)*
pow(
sin( (origLng*pi()/180-longitude*pi()/180)/2),2)))*1000);

RETURN result;

END ;