2

我想做一个函数来计算用户和一个兴趣点(POI)之间的角度,参考真北。

我已经有了我的位置和 POI 位置的经度和纬度,现在我需要它们之间的角度。

这是我所拥有的:

private float calcAzimuth1(float lat0, float long0, float lat1, float long1)
{
    //user's latitude and longitude
    float userLat  = (float) ((lat0  * ((float)Math.PI))/180);
    float userLong = (float) ((long0 * ((float)Math.PI))/180);

    //POI's latitude and longitude
    float latT1    = (float) ((lat1  * ((float)Math.PI))/180);
    float longT1   = (float) ((long1 * ((float)Math.PI))/180);

    //angle between them
    float angle=??}
4

1 回答 1

1

检查 Location 类的 bearingTo 函数 http://developer.android.com/reference/android/location/Location.html#bearingTo(android.location.Location) 您可以从 Lat/Longs 创建两个 Location 对象,然后获取方位它们之间。

您可能需要的另一件事是计算设备方向,然后将它们组合在一起。这需要收听传感器并根据收到的信息计算北方。在此处查看答案: SGS III 上的指南针读数

于 2014-01-31T14:06:26.523 回答