mysql计算量经纬度距离_使用mysql计算两个经纬度之间的距离

使用mysql计算两个经纬度之间的距离

发布时间:2018-05-13作者:laosun阅读(1667)

0f9e8264915948f7a1174b4a48c40c63.gif

加入有两个点:

第一点    116.359751000, 39.936868000

第二点    117.291179000, 35.657141000

在mysql数据库中执行如下语句即可:select  round(6378.138*2*asin(sqrt(pow(sin((39.936868000*pi()/180-35.657141000*pi()/180)/2),2)+cos(39.936868000*pi()/180)*cos(35.657141000*pi()/180)* pow(sin( (116.359751000*pi()/180-117.291179000*pi()/180)/2),2)))*1000)

当然我们也可以创建一个函数:

delimiter $$

CREATE FUNCTION FUN_JW_DIST(lng1 double(15,9), lat1 double(15, 9), lng2 double(15,9), lat2 double(15,9))

RETURNS int

BEGIN

DECLARE dist int;

SET dist = round(6378.138*2*asin(sqrt(pow(sin((lat1*pi()/180-lat2*pi()/180)/2),2)+cos(lat1*pi()/180)*cos(lat2*pi()/180)* pow(sin((lng1*pi()/180-lng2*pi()/180)/2),2)))*1000);

RETURN (dist);

END$$

delimiter ;

然后使用:

select FUN_JW_DIST(116.359751000, 39.936868000, 117.291179000, 35.657141000);

删除这个函数

drop function FUN_JW_DIST;

af499b9437efec8e1b25c2bb396e60d7.png

1 +1

版权声明

分享到:

发表评论

请文明留言

发表

共 0 条评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值