今天有个任务是在请求商家详情的时候需要求用户离商家的距离(也就是计算两经纬度之间的距离,套用了下面的公式解决了问题)
public class Distance {
private final static double PI = 3.14159265358979323; // 圆周率private final static double R = 6371229; // 地球的半径
/**
* 获取两个经纬点的距离
* @param longt1 经度1
* @param lat1 纬度1
* @param longt2 经度2
* @param lat2 纬度2
* @return distance 直线距离
*/
public static double getDistance(double longt1, double lat1, double longt2,double lat2) {
double x, y, distance;
x = (longt2 - longt1) * PI * R * Math.cos(((lat1 + lat2) / 2) * PI / 180) / 180;
y = (lat2 - lat1) * PI * R / 180;
distance = Math.hypot(x, y);
return distance;
}
}