MySQL 根据经纬度计算距离
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