package com.prolog.rdc.tms.app.util;

public class DistanceUtil {

    // 地球半径
    private static final  double EARTH_RADIUS=6378.137;

    /**
     * 根据两个位置的经纬度，来计算两地的距离（单位为KM）
     * @param longitude1 第一点的经度
     * @param latitude1 第一点的纬度
     * @param longitude2 第二点的经度
     * @param latitude2 第二点纬度
     * @return
     */
    public static double getDistance(double longitude1,double latitude1,double longitude2,double latitude2){
        // 纬度
        double lat1 = Math.toRadians(latitude1);
        double lat2 = Math.toRadians(latitude2);

        // 经度
        double lng1 = Math.toRadians(longitude1);
        double lng2 = Math.toRadians(longitude2);
        // 纬度之差
        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)));
        s= s*EARTH_RADIUS;
        return s;
    }
}
