1、计算距离的公式比较长(网上查找),建一个mysql函数:
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 删除。