球形Cosinus Haversine公式

时间:2017-08-21 09:21:35

标签: java android haversine

所以目前我写了一个函数hasrsine公式来计算2坐标的距离,我发现这个代码,但我不知道如何在android中编写它。这是我将创建的功能。这个

private double SphericalCosinus(double lat1, double long1, double lat2,
        double long2) {
    //formula
}

并且公式就是这个,有一些教程告诉我使用数学图书馆,但我总是写错了代码,因为应用程序没有显示位置。这是我得到的公式

=(6371.1*((2*ASIN(SQRT((SIN((RADIANS(lat2)-RADIANS(lat1))/2)^2)+COS(RADIANS(lat2))*COS(RADIANS(lat1))*(SIN((RADIANS(long2)-RADIANS(long1))/2)^2))))))

1 个答案:

答案 0 :(得分:2)

通过查找和替换的力量:

private double SphericalCosinus(double lat1, double long1, double lat2, double long2) {
    return 6371.1*((2 * 
        Math.asin(
            Math.sqrt(
                (Math.sin(Math.pow((Math.toRadians(lat2)-Math.toRadians(lat1))/2),2.0)) + 
                Math.cos(Math.toRadians(lat2)) * 
                Math.cos(Math.toRadians(lat1)) *
                (Math.sin(Math.pow(Math.toRadians(long2)-Math.toRadians(long1))/2),2.0)
            )
        )
    ));
}

https://developer.android.com/reference/java/lang/Math.html