我正在构建一个基于增强现实的Android应用程序。主要想法是当用户打开我的应用程序时,默认情况下设备的相机以预览模式启动。根据用户当前的GPS位置以及用户/摄像机所面向的方向,我想计算出该范围内纬度和经度的集合?
以下图片很好地解释了我的情景。我有全套的纬度和经度绘制图中的所有黑点。现在假设用户位于圈子的中心。还考虑到他正朝北方向观看。如果我们考虑朝向北方向45度的角度。我希望得到这个45度可视区域的纬度和经度。
我能够获得用户相机所面向的方向。我也能够找到用户当前的GPS位置。我在我的SQLite数据库中存储了完整的纬度和经度。现在我想计算的是用户设备相机所面临的纬度和经度的集合。
我希望我在这里解释得很好。如果有人可以提供帮助,那就太紧急了。
提前致谢。
答案 0 :(得分:4)
要获得视角,您可以使用Camera.Parameters getHorizontalViewAngle()方法作为近似值。我们称之为alpha。你也知道你的设备从它的视角到磁北的方位,我们称之为beta。
从那里,在给定的半径内,迭代一组数据库位置,计算从你的位置到它的方位,并检查它是否在区间内[beta-alpha / 2,beta + alpha / 2]
如果你真的不急于这个,我建议你看看Mixare,它是一个处理位置和AR的开源框架。
答案 1 :(得分:3)
你可以检查一下在GPLv3下发布的增强现实浏览器mixare的代码。存储库位于:http://github.com/mixare/mixare
你必须要处理很多细节,从摄像机的视野仅从android版本2.3(IIRC)开始以编程方式提供。您可以在兼容性类中找到这些以及许多其他内容。
HTH, Daniele - mixare团队