首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >mysql计算经纬度亮点之间的距离

mysql计算经纬度亮点之间的距离

原创
作者头像
好派笔记
修改2021-11-02 10:54:42
修改2021-11-02 10:54:42
1.6K00
代码可运行
举报
文章被收录于专栏:好派笔记好派笔记
运行总次数:0
代码可运行

1、计算距离的公式比较长(网上查找),建一个mysql函数:

代码语言:javascript
代码运行次数:0
运行
复制
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.1382asin(sqrt(pow(sin((lat1pi()/180-lat2pi()/180)/2),2)+cos(lat1pi()/180)cos(lat2pi()/180) pow(sin((lng1pi()/180-lng2pi()/180)/2),2)))*1000);
RETURN (dist);
END$$
delimiter ;</pre> 


 测试: 
 例如: 
 第一点(116.359751000, 39.936868000)    第二点(117.291179000, 35.657141000)
 在数据库中执行 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) 
 执行结果: 483402 
 执行: select FUN_JW_DIST(116.359751000, 39.936868000, 117.291179000, 35.657141000); 
 执行结果:483402 
 
 
 =========== 
 如果不想使用这个函数可以删除: 
drop function FUN_JW_DIST;  

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档