如何找到两个纬度和经度之间的角度并将它们显示在圆上?

时间:2012-07-22 21:01:18

标签: java android geometry

嘿,我的圈子如下。 圆有两个点A(纬度1,经度1)和B(纬度2,经度2)。 和两个(纬度,经度)对。其中一个是(Say A)是圆的中心点。现在我想通过计算角度在圆(B)上加上另一个点。 请问如何在Android画布中执行此操作? 现在我想使用以下功能:

public double getAngle(double lat1, double lon1, double lat2, double lon2)
{
    double dx = lat2 - lat1;
    // Minus to correct for coord re-mapping
    double dy =  Math.cos(Math.PI/180*lat1)*(lon2 - lon1);

    double inRads = Math.atan2(dy,dx);

    if (inRads < 0)
        inRads = Math.abs(inRads);
    else
        inRads = 2*Math.PI - inRads;

    return inRads;
}

以上功能是否正确获取角度?如果是,那么现在如何在画布上显示该点?

1 个答案:

答案 0 :(得分:-1)

Math.cos()非常可疑。为什么dy不是lon2 - lon1?一旦你有inRads,你为什么要摆弄它? Math.atan2()在-Pi和+ Pi之间返回正确的角度。