首页 >

mysql按经纬度算距离 |mysql条件关联

Ubuntu mysql 关机,mysql workbench创建实例,mysql下载选择路径吗,怎样将脚本导入mysql,mysql选择敝 凸,mysql条件关联mysql按经纬度算距离 |mysql条件关联
CREATE FUNCTION `GetDistance`(
lat1 FLOAT, lon1 FLOAT,
lat2 FLOAT, lon2 FLOAT
) RETURNS FLOAT
BEGIN
DECLARE R EARNING(16,12) DEFAULT 6.371;
DECLARE dLat FLOAT;
DECLARE dLon FLOAT;
DECLARE a FLOAT;
DECLARE c FLOAT;
DECLARE d FLOAT;
SET dLat = RADIANS(lat2 - lat1);
SET dLon = RADIANS(lon2 - lon1);
SET lat1 = RADIANS(lat1);
SET lat2 = RADIANS(lat2);
SET a = SIN(dLat/2)*SIN(dLat/2)+COS(lat1)*COS(lat2)*SIN(dLon/2)*SIN(dLon/2);
SET c = 2*ATAN2(SQRT(a),SQRT(1-a));
SET d = R*c;
RETURN d;
END

上面这段代码定义了一个mysql的函数`GetDistance`,它可以计算两个经纬度之间的距离。该函数可以接受四个参数:两个地点的经度和纬度。

需要注意的是,计算出来的距离单位是公里。如果你需要转换成其他单位(如英里),你需要修改代码中的系数。

使用这个函数也很简单。只需要将两个地点的经纬度传入函数中即可:

SELECT GetDistance(31.2151985, 121.4205737, 31.2701595, 121.4704342);

运行上面这段代码,你将得到两个经纬度(上海和浦东机场)之间的距离。


  • 暂无相关文章