2个GPS坐标之间的角度

时间:2010-09-28 02:01:08

标签: iphone gps coordinates augmented-reality angle

我正在使用另一个使用AR的iPhone应用程序,我正在创建自己的框架,但是我无法尝试获得相对于当前设备位置的第二个坐标的角度,任何人都知道一个好的资源可以帮助我吗?

提前致谢!

2 个答案:

答案 0 :(得分:14)

如果这两个点足够接近,并且远离极点,则可以使用一些简单的触发:

float dy = lat2 - lat1;
float dx = cosf(M_PI/180*lat1)*(long2 - long1);
float angle = atan2f(dy, dx);

编辑:我忘了提及latNlongN - 因此dxdy - 可以是度数或弧度,只要你不这样做混合单位。然而,angle总会以弧度回归。当然,如果你乘以180 / M_PI,你可以把它恢复到度数。

答案 1 :(得分:1)

这是此代码的Android版本

import com.google.android.maps.GeoPoint;
    public double calculateAngle(GeoPoint startPoint, GeoPoint endPoint) {
        double lat1 = startPoint.getLatitudeE6() / 1E6;
        double lat2 = endPoint.getLatitudeE6() / 1E6;
        double long2 = startPoint.getLongitudeE6() / 1E6;
        double long1 = endPoint.getLongitudeE6() / 1E6;
        double dy = lat2 - lat1;
        double dx = Math.cos(Math.PI / 180 * lat1) * (long2 - long1);
        double angle = Math.atan2(dy, dx);
        return angle;
    }