mysql计算量经纬度距离

MySQL作为一种强大的关系型数据库,具有很多高效的计算功能。其中,计算经纬度距离就是很常见的一种计算方法。下面我们通过pre标签引入一个例子,来了解在MySQL中如何计算经纬度距离。

CREATE FUNCTION distance (lat1 DOUBLE, lon1 DOUBLE, lat2 DOUBLE, lon2 DOUBLE) RETURNS DOUBLE DETERMINISTIC BEGIN SET @radius = 6371; -- 地球平均半径 SET @latDiff = RADIANS(lat2 - lat1); SET @lonDiff = RADIANS(lon2 - lon1); SET @a = SIN(@latDiff/2) * SIN(@latDiff/2) + COS(RADIANS(lat1)) * COS(RADIANS(lat2)) * SIN(@lonDiff/2) * SIN(@lonDiff/2); SET @c = 2 * ATAN2(SQRT(@a), SQRT(1-@a)); RETURN @radius * @c; END;