1

嘿,我有如下圆圈。Circle 有两个点 A(latitude1,longitude1) 和 B(latitude2,longitude2)。和两个(纬度,经度)对。其中一个是(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;
}

上述函数是否正确获取角度?如果是,那么现在我如何在画布上显示该点?

4

1 回答 1

-1

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

于 2012-07-22T21:22:43.433 回答