Android:如何基于GPS和陀螺仪在屏幕上绘制对象

时间:2015-03-01 20:07:19

标签: android gps accelerometer augmented-reality

我一直在为我的大学开发一个增强现实应用程序,在查看相机预览时将POI按钮放到每个建筑物上。我应该从头开始编程,而不使用像Layar或Wikitude这样的东西。 我有各种传感器的所有信息,我认为是必要的,如加速度计,陀螺仪,GPS和指南针,但是,我无法弄清楚我是如何将对象绘制到屏幕上的特定位置并且他们正确地移动。我想知道这里有没有人有这方面的经验,我假设有一些线性代数,但我无法完全理解这一点。

1 个答案:

答案 0 :(得分:0)

如果您想了解一般问题,请将其视为两个步骤:

  1. 将所有这些传感器值组合在一起,告诉您相机的位置(GPS),它所在的位置(从加速度计和指南针得到的方向:Android应该已经将某些内容组合成一个3D方向值),以及多少你可以看到的世界(相机的视野 - 你需要弄明白!)
  2. 设置相应的3D图形渲染系统,然后使用这些值来定位你的虚拟3D摄像头"与您的手机在同一位置和方向的世界。
  3. 完成后,您只需在世界各地渲染3D图形(标签),它们就应该正确显示。

    由于您只想绘制标签,您可以简化很多(例如,您可以只使用3D投影来计算每个标签的屏幕位置,然后使用普通2D渲染标签,而不是渲染3D图形渲染)。

    我建议您为您的POI和相机使用欧几里德坐标系(例如,将LLA转换为UTM,以米为单位)。它使很多事情变得更容易。