Iphone 观察方向与纬度/经度之间的角度

Iphone 观察方向与纬度/经度之间的角度,iphone,augmented-reality,compass-geolocation,Iphone,Augmented Reality,Compass Geolocation,我正在用AR做一点实验。我已经从指南针得到了我要看的方向的角度,单位是度。我知道我自己的位置和另一个物体的位置(POI),这个位置以经纬度的形式给出 现在,我想知道如何计算我所望方向与POI之间的角度。点积: a . b = ||a|| ||b|| cos(t) t = acos( (a.b)/(||a|| ||b||) ) ||vector|| = length of vector (magnitude) t = angle between the two vectors

我正在用AR做一点实验。我已经从指南针得到了我要看的方向的角度,单位是度。我知道我自己的位置和另一个物体的位置(POI),这个位置以经纬度的形式给出

现在,我想知道如何计算我所望方向与POI之间的角度。

点积:

a . b = ||a|| ||b|| cos(t)
t = acos( (a.b)/(||a|| ||b||) )


||vector|| = length of vector (magnitude)
t          = angle between the two vectors
你可能需要为每架飞机做几次。(1个用于2D,2个用于3D)

或:

t是左下角,我们假设它是你的物体,右上角是你的另一个物体

x = obj2.x - obj1.x
y = obj2.y - obj1.y
h = sqrt( (x*x) + (y*y) )

sin(t) = y/h
cos(t) = x/h
tan(t) = y/x

t = asin(y/h)
t = acos(x/h)
t = atan(y/x)

第一种方法之所以更好,是因为它考虑到了你当前的轮换。第二种方法(使用atan、asin和acos)不行。

您好,谢谢您的回答。我自己也这么想,但我能假设纬度=x,经度=y吗?还是我理解错了?罗盘的航向从哪里来?或者我应该在罗盘航向的帮助下从目的地创建一个新的纵横向点吗?在这种情况下,我能假设方位=罗盘航向吗?Sry如果我不了解你,但我对AR、compass、lat/long和这类东西真的很陌生;)@user1990524 lat/long坐标系不是很矩形,但是如果你假设它是矩形的,正如这个答案所暗示的,这个差异将比你用手持式罗盘测量的要小得多。然而,你计算的航向是相对于正北的,而不是像你的指南针那样相对于磁北的。要获得正确的指南针航向,您需要使用所处区域的。A可能会有帮助。我在iphone中使用指南针。你们可以得到真正的航向(我猜它意味着地理上的北方),所以不需要使用磁偏角
x = obj2.x - obj1.x
y = obj2.y - obj1.y
h = sqrt( (x*x) + (y*y) )

sin(t) = y/h
cos(t) = x/h
tan(t) = y/x

t = asin(y/h)
t = acos(x/h)
t = atan(y/x)