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)//返回两者的平方和的开根
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)