第一步:声明一个全局变量(地球的半径)
private static final double EARTH_RADIUS = 6378.137;
第二步:创建一个封装经纬度的VO类
public class LatAndLon implements Serializable {
private double latX;
private double lonY;
}
第三步:计算两个经纬度之间的距离
public static double getDistance(LatAndLon latAndLon1, LatAndLon latAndLon2) {
double lat1 = Math.toRadians(latAndLon1.getLatX());
double lat2 = Math.toRadians(latAndLon2.getLatX());
double lng1 = Math.toRadians(latAndLon1.getLonY());
double lng2 = Math.toRadians(latAndLon2.getLonY());
double a = lat1 - lat2;
double b = lng1 - lng2;
double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(lat1) * Math.cos(lat2) * Math.pow(Math.sin(b / 2), 2)));
return s * EARTH_RADIUS;
}