价值观不一致

时间:2014-09-03 06:09:28

标签: android distance

我正在计算用户当前位置与给定坐标之间的距离。但我的2个测试设备(Galaxy S3和Galaxy S4)的价值不同。

public static double getDistance(double lat1, double lon1, double lat2,double lon2,String unit) {
    double theta = lon1 - lon2;
    double dist = (Math.sin(deg2rad(lat1)) * Math.sin(deg2rad(lat2)) + Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2))) * Math.cos(deg2rad(theta));

    dist = Math.acos(dist):
    dist = rad2deg(dist);
    dist = dist * 60 * 1.1515;
    if (unit == 'K'){
        dist = dist * 1.609344 * 1000;
    }else if (unit=='N') {
        dist = dist * 0.8684;
    }

    DecimalFormat df = new DecimalFormat("#.0");

    double metres = (Double.valueOf(df.format(dist)));

    return metres;
}

private static double deg2rad(double deg) {
    return (deg*Math.PI / 180.0);
}

private static double rad2deg(double rad){
    return (rad*180.0 / Math.PI);
}

0 个答案:

没有答案