create function distance123(lata double(6,2),lona double(6,2),latb double(6,2),lonb double(6,2)) RETURNS double(6,2)
BEGIN
-- 地段,最后的距离
DECLARE distance REAL DEFAULT 0;
-- 地球的平均半径
DECLARE EARTH_PADIUS REAL DEFAULT 6371;
-- lata的角度纬度
DECLARE RadLata REAL DEFAULT 0;
-- latb的角度纬度
DECLARE RadLatb REAL DEFAULT 0;
-- ab的纬度角度之差
DECLARE RadLatab REAL DEFAULT 0;
-- ab的经度之差
DECLARE RadLonab REAL DEFAULT 0;
SET RadLata = lata*PI()/180.0;
SET RadLatb = latb*PI()/180.0;
SET RadLatab=RadLata- RadLatb;
SET RadLonab =lona*PI()/180.0 - lonb*PI()/180.0;
SET distance =2*ASIN(SQRT(POWER(Sin(RadLat/2),2)+COS(RadLata)*
COS(RadLatb)*POWER(SIN(RadLonab/2),2)));
SET distance =distance*EARTH_PADIUS*1000;
SET distance =round(distance,2);
RETURN distance;
END
注意
- RETURNS double(6,2) 后不可以有分号
- -- 注释后要有空格