CREATE FUNCTION `fun_get_distance` (
`myLongitude` DECIMAL ( 20, 15 ),
`myLatitude` DECIMAL ( 20, 15 ),
`sysLongitude` DECIMAL ( 20, 15 ),
`sysLatitude` DECIMAL ( 20, 15 )) RETURNS DECIMAL ( 20, 15 ) BEGIN
/*
`myLongitude` decimal(20,15), 我的经度
`myLatitude` decimal(20,15), 我的纬度
`sysLongitude` decimal(20,15), 系统的经度
`sysLatitude` decimal(20,15) 系统的纬度
*/
DECLARE
distance DECIMAL ( 20, 15 );
SET distance = 6378.138 * 2 * ASIN(
SQRT(
POW( SIN(( myLatitude * PI() / 180 - sysLatitude * PI() / 180 ) / 2 ), 2 ) + COS( myLatitude * PI() / 180 ) * COS( sysLatitude * PI() / 180 ) * POW( SIN( ( myLongitude * PI() / 180 - sysLongitude * PI() / 180 ) / 2 ), 2 )
)
);
RETURN distance;
END