使用用户当前的纬度、经度和观察对象的方向,找到一组纬度和经度。

6
我正在开发一款基于增强现实技术的安卓应用。主要思路是当用户打开我的应用时,默认情况下设备的相机会以预览模式启动。根据用户当前的GPS位置和用户/相机所面向的方向,我想计算哪些经纬度在范围内?下图很好地说明了我的情况。我拥有所有黑点画出的经纬度集合。现在假设用户位于圆心。同时考虑到他正朝北看。如果我们考虑一个45度角朝向北方。我想获得这个45度可视区域中出现的经纬度集合。
我能够获取用户相机面对的方向。我还能够找到用户当前的GPS位置。我在SQLite数据库中存储了完整的经纬度集。现在我想计算出用户设备相机面临的经纬度集合。
希望我已经解释得很清楚了。如果有人能帮忙就很紧急了,谢谢。

你如何获取相机面对的方向?你能给我一些细节吗? - Ovidiu Latcu
2个回答

4
为了获得视角,您可以使用相机参数 getHorizontalViewAngle() 方法作为近似值。我们称之为 alpha。您还知道设备从其视点到磁北极的方位角,我们称之为 beta。
从那里开始,在给定半径内,迭代一组数据库位置,计算从您的位置到其位置的方位角,并检查它是否在区间 [beta-alpha/2, beta+alpha/2] 内。
如果您没有特别着急,我建议您看一下 Mixare,它是一个处理位置和 AR 的开源框架。

非常感谢...我会尝试两种方法 至少你给了我前进的一步... 再次感谢.. - hp.android
我发现这个链接非常有帮助... http://www.movable-type.co.uk/scripts/latlong.html 它提供了示例JavaScript代码,通过它我能够找到用户位置到兴趣点的方位...感谢MobileCushion指导我朝着正确的方向前进... - hp.android
很高兴它有帮助!继续加油! - MobileCushion

3
你可以查看 Mixare 的代码,这是一个在 GPLv3 下发布的增强现实浏览器。该代码库可在以下链接中找到:http://github.com/mixare/mixare 需要注意的细节很多,例如从 Android 版本 2.3 开始,相机的视野只能通过编程方式获得(如果我没记错的话)。你可以在兼容性类中找到这些以及其他许多细节。
祝好, Mixare 团队的 Daniele

恭喜你和你的团队的工作!一直在使用它,非常棒!:) - MobileCushion
非常感谢您的赞美 :-) - Daniele
@Daniele,你好,我刚刚在设备上安装了你的应用程序。它非常棒,做得很好。请继续做出这样美丽的作品……这将对我有很大帮助……谢谢。 - hp.android
@hp.android 谢谢你的赞美之词!如果你能的话,随时可以提交补丁(例如翻译将是很大的帮助。但当然,代码更好;-)) - Daniele
@Daniele 我很乐意提交葡萄牙语翻译。我该怎么做? - MobileCushion
@MobileCushion \o/ :-) 如果您有Github账户,可以在Github上发送一个pull request;或者,您也可以将您的语言的xml文件发送到info@mixare.org邮箱(西班牙语URL作为参考:https://github.com/mixare/mixare/blob/master/res/values-es/strings.xml)。谢谢!!! - Daniele

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接