【问题标题】:Angle between looking direction and latitude/longitude观察方向与纬度/经度之间的角度
【发布时间】:2013-08-20 14:54:38
【问题描述】:

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

现在我想知道如何计算我正在寻找的方向与 POI 之间的角度。

【问题讨论】:

    标签: iphone augmented-reality compass-geolocation


    【解决方案1】:

    点积:

    a . b = ||a|| ||b|| cos(t)
    t = acos( (a.b)/(||a|| ||b||) )
    
    
    ||vector|| = length of vector (magnitude)
    t          = angle between the two vectors
    

    您可能需要为您拥有的每架飞机执行几次此操作。 (1x 用于 2D,2x 用于 3D)

    或者:

        /|
       / |
    h /  | y
     /   |
    /____|
      x
    

    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)没有。

    【讨论】:

    • 您好,感谢您的回答。我自己想到了这个,但我可以假设 latitude = x 和 longitude = y 吗?还是我理解错了?指南针的航向从何而来?或者我应该在指南针航向的帮助下从目的地创建一个新的纬度/经度点?在这种情况下,我可以假设方位 = 罗盘航向吗?对不起,如果我不理解你,但我对 AR、指南针、纬度/经度和这类东西真的很陌生;)
    • @user1990524 纬度/经度坐标系并不完全是矩形的,但是如果您按照这个答案的建议假设它是矩形的,那么差异将比您用手持指南针测量的要小得多。但是,您计算的航向将与真北相关,而不是像指南针那样与磁北相关。要获得正确的指南针方向,您需要使用 magnetic declination 来隐藏您所在的区域。declination calculator 可能会有所帮助。
    • 我在 iphone 中使用指南针。而且你可以得到真正的航向(我猜这意味着地理上的北方)所以不需要使用磁偏角
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-03
    • 2011-12-28
    • 1970-01-01
    • 1970-01-01
    • 2013-06-23
    • 1970-01-01
    相关资源
    最近更新 更多