两个已知的安卓地理位置之间的角度

3

我想要找到两个已知地理位置之间的夹角。基本上,我想要指向一个固定地理位置的箭头,箭尾在我的当前位置,箭头指向该位置。

所以我在想,如果我能够得到这两个地理位置之间的夹角,那么可能我就能做到同样的事情。

你们有什么更好的建议吗?任何帮助都将不胜感激。

4个回答

4

非常好的资源。谢谢! - Robin

2

我希望能够达到同样的效果。使用这个参考来计算角度,如下所示:

private double angleFromCoordinate(double lat1, double long1, double lat2,
        double long2) {

    double dLon = (long2 - long1);

    double y = Math.sin(dLon) * Math.cos(lat2);
    double x = Math.cos(lat1) * Math.sin(lat2) - Math.sin(lat1)
            * Math.cos(lat2) * Math.cos(dLon);

    double brng = Math.atan2(y, x);

    brng = Math.toDegrees(brng);
    brng = (brng + 360) % 360;
    brng = 360 - brng;

    return brng;
}

然后将ImageView旋转到这个角度

private void rotateImage(ImageView imageView, double angle) {

    Matrix matrix = new Matrix();
    imageView.setScaleType(ScaleType.MATRIX); // required
    matrix.postRotate((float) angle, imageView.getDrawable().getBounds()
            .width() / 2, imageView.getDrawable().getBounds().height() / 2);
    imageView.setImageMatrix(matrix);
}

0
这其实是简单的三角学。如果它们足够接近,你可以使用平面几何。取两个位置,找出以这两个位置为锐角的直角三角形,然后计算。
已经有一个链接到基本数学了。
有一件事——如果位置相距很远,你将需要使用球面三角学,否则角度会不准确。
好吧,曾经有一个链接……http://www.easycalculation.com/trigonometry/triangle-angles.php

这将涉及到具有边缘的球面三角学。WGS84不是一个球体,而是一个具有主轴、次轴和反扁率的椭球体。 - Hyperboreus
是的,地球在太空中移动和旋转,因此需要进行相对论修正。掌握住重点,伙计——你认为Android地理定位有多准确? - Charlie Martin
如果你能得到更好的结果并选择更差的结果,可以随意。但要注意不要掉下地球盘的边缘。 - Hyperboreus

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接