前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql计算经纬度亮点之间的距离

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

原创
作者头像
好派笔记
修改2021-11-02 10:54:42
1.1K0
修改2021-11-02 10:54:42
举报
文章被收录于专栏:好派笔记好派笔记

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

代码语言:javascript
复制
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 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档