我正在创建Android的AR应用程序,当我指向带有实时摄像头的地方时,它会在摄像机视图上写出地点/建筑物等的名称。我得到我当前在lat和long的位置,我也可以从当前位置得到一定半径的位置列表(带有纬度/经度)。
然而,实施中最令人困惑的部分是仅显示当时在相机中可见的那些地方(不显示地点)。其中一个想法是计算我当前位置的方位角,然后计算我在设定半径内获得的所有位置的方位角,然后使用getHorizontalViewAngle()
计算相机水平角度并使所有这些参数计算方位角进入此区间的位置:[my_current_loc + (getHorizontalViewAngle()/2) ; my_current_loc - (getHorizontalViewAngle()/2)]
。
但是我认为这不是一种非常有效的方式,任何人都可以建议我的任何解决方案,或者可能有一些有类似的问题并找到好的解决方案。如果很难理解我的问题,请告诉我,我会尝试更详细地解释。
答案 0 :(得分:3)
你正在做正确的事情,但在我们的项目中,我们发现使用rotationmatrix而不是方位角更好(性能明智)。你可以看一下mixare增强现实引擎的源代码。它在github上:https://github.com/mixare/mixare
核心逻辑位于MixView类中。主要思想是将任何东西转换为矢量并将它们投射到围绕手机的“虚拟”球体上。
HTH, 丹尼尔