java计算两个经纬度之间的距离
解决方法:
//lat1第一点纬度,lng1第一点经度,lat2第二点纬度,lng2第二点经度,
public static double getDistance(Double lat1, Double lng1, Double lat2, Double lng2) {
double EARTH_RADIUS = 6371393;//地球平均半径,单位米
// A经弧度
double radiansAX = Math.toRadians(lng1);
// A纬弧度
double radiansAY = Math.toRadians(lat1);
// B经弧度
double radiansBX = Math.toRadians(lng2);
// B纬弧度
double radiansBY = Math.toRadians(lat2);
// 公式中“cosβ1cosβ2cos(α1-α2)+sinβ1sinβ2”的部分,得到∠AOB的cos值
double cos = Math.cos(radiansAY) * Math.cos(radiansBY) * Math.cos(radiansAX - radiansBX)
+ Math.sin(radiansAY) * Math.sin(radiansBY);
// 反余弦值
double acos = Math.acos(cos);
// 返回两点的距离, 米
return EARTH_RADIUS * acos;
}