【问题标题】:Transform Latitude,Longitude-Position on screen in augmented reality app在增强现实应用程序的屏幕上变换纬度、经度-位置
【发布时间】:2013-05-22 11:09:55
【问题描述】:

这是我在这个论坛上的第一篇文章,我对编程很陌生。我想构建一个应用程序,我可以在其中准确地看到一些 gps 值在我的手机上的位置。我知道很多应用程序,例如 junaio、mixare 和其他应用程序,但它们只显示对象的方向并且它们不是很准确(它们没有将其投影到屏幕上的确切位置的目标) - 所以我想自己建造。我在android上编程,但我认为在iPhone上应该是一样的。

我按照dabhaid 建议的步骤进行操作:

一共有三个步骤。

1) 使用传感器确定您的位置和方向。

2) 通过使用例如大圆距离和方位确定已知 GPS 坐标的相对位置和方位,将 GPS 坐标空间转换为平面坐标空间。 (使用此方案,您的设备将停留在坐标空间的原点)

3) 进行透视投影http://en.wikipedia.org/wiki/3D_projection#Perspective_projection 以找出对象应出现在显示器(好的,您的相机传感器)平面上的哪个位置,以便您可以增强它们。

第 1 步:很简单,我从我的移动设备 (x,y,z) 获得了 gps 位置和所有方向。为了进一步改进,我可以使用一些算法来平滑这些值(平均值、低过滤器等)。

第二步:我不知道,平面坐标空间到底是什么意思。我有一些不同的方法来转换我的 gps 坐标空间。其中之一是 ECEF(以地球为中心),其中 0,0,0 是地球的中心。不知何故,这对我来说看起来不太好,因为一个轴的每一个微小变化都会导致其他两个轴的变化。所以如果我改变高度,所有的 3 轴都会改变。我不知道我是否可以使用此坐标系执行第 3 步。 在第 2 步中提到:using hasrsine - 这会给我到点的距离,但我没有从中得到 x,y,z。我是否必须通过使用三角法(方位(alpha)+ 距离(斜边))来计算 x,y?

第 3 步:这种方法看起来很酷!如果我有 Step 2 的坐标空间,我可以使用 wikipedia 上的公式计算 d_x,d_y,d_z。但是在这一步之后,我还没有完成,因为我只有坐标并且要将它投影到我的屏幕上,我只需要两个坐标?通过计算 b_x,b_y 继续来自维基百科的文本他们使用 e_x,e_y,e_z 这是查看者相对于显示表面的位置 -> 我怎样才能获得这些值从我的移动设备? (安卓/ios)。 wikipedia 建议的另一种方法是:使用 wikipedia 上提到的公式计算 b_x,b_y by。在这个公式中,他们使用 s_x,s_y(屏幕尺寸)和 r_x,r_y(记录表面尺寸)。同样,如何从移动设备获取记录表面?

我在互联网上找不到任何东西。似乎在 android/ios 上没有人曾经实现过透视投影......

非常感谢您的所有回答!此外,指向有用网站的链接也会有所帮助!

【问题讨论】:

    标签: android ios augmented-reality projection perspective


    【解决方案1】:

    我认为您可以在另一个帖子中找到很多答案:Transform GPS-Points to Screen-Points with Perspective Projection in Android

    希望对你有帮助,再见!

    【讨论】:

      【解决方案2】:

      这是我在这个问题上所做的一个简单解决方案。

      A: Mapping GPS locations on the camera preview in Android

      希望它有所帮助。 :D

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-16
        相关资源
        最近更新 更多