mysql中怎么根据经纬度计算距离

mysql中怎么根据经纬度计算距离,第1张

DROP FUNCTION IF EXISTS func_calcDistance

CREATE FUNCTION func_calcDistance(

origLng DECIMAL(20,6), -- 目的地经度

origLat DECIMAL(20,6), -- 目的地纬度

longitude DECIMAL(20,6), -- 当前所在地点经度

latitude DECIMAL(20,6) -- 当前所在地点纬度

)

RETURNS DOUBLE

BEGIN

DECLARE result DOUBLE DEFAULT 0

SET result = round(6378.138*2*asin(sqrt(pow(sin(

(origLat*pi()/180-latitude*pi()/180)/2),2)+cos(origLat*pi()/180)*cos(latitude*pi()/180)*

pow(sin( (origLng*pi()/180-longitude*pi()/180)/2),2)))*1000)

RETURN result

END

你可以在系统中创建一个二维数组,把每个坐标作为一个二维数组存储起来,写一个方法,输入2个坐标的时候,自动计算两个坐标之间的距离。

比如我的坐标是:2,3;你的坐标是4,6

那么定义一个方法:

public double getDistance(double x1,double y1,double x2,double y2){

double a = Math.abs(x1-x2)//绝对值

double b = Math.abs(y1-y2)//绝对值

return Math.hypot(a,b)//返回两者的平方和的开根

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6165667.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-17
下一篇 2023-03-17

发表评论

登录后才能评论

评论列表(0条)

保存