在Android中的相机预览上映射GPS位置

时间:2013-03-09 07:21:46

标签: android augmented-reality

Guyz, 当我在我周围移动相机时,我需要在相机预览上显示位置(前餐厅,剧院,银行等)。我知道如何获取位置(来自foursquare或谷歌地图),我也知道如何打开相机预览。我只是不知道如何将这两者联系起来。我用谷歌搜索了,但没有得到有用的帖子,可能是因为我的英语不好。

所以,我需要你的帮助,如果你知道关于这个问题的任何帖子,请善意发表评论。

提前致谢。

编辑:实时相机预览

     -------------------------------------------------- ----------------------------
|剧院|
| |
|银行|
|餐厅|
| |
| |
| |
| |
| |
---------------------------------------------- --------------------------------


对不起我,我的声誉不到10,所以无法上传图片。
希望这有助于理解我的问题。

3 个答案:

答案 0 :(得分:3)

我也在Android上做过类似的事情。让我们假设您想要在预览上打印的内容称为目标。

你肯定知道这些目标的坐标是什么,包括纬度经度和海拔高度。假设这些坐标分别为tx,ty和tz,并且设备的当前位置为x,y和z。

根据摄影测量中的共线方程,目标(sx,sy)的屏幕坐标为:


sx = f * {[m11(x-tx)+ m12(y-ty)+ m13(z-tz)] / [m31(x-tx)+ m32(y-ty)+ m33(z- TZ)]}

sy = f * {[m21(x-tx)+ m22(y-ty)+ m23(z-tz)] / [m31(x-tx)+ m32(y-ty)+ m33(z- TZ)]}


其中f是焦距,m11~m33是基于器件方向的旋转矩阵中的值。必须使用仿射变换应用屏幕坐标,将它们转换为屏幕列和行以便打印用法。

这就是我想要做的,但我发现在应用自动对焦后焦距从未改变过。所以我以另一种方式做到了。

  1. 获取设备的屏幕尺寸(或预览尺寸)以及相机的水平和垂直角度。
  2. 计算设备与目标之间的方位角和倾角。
  3. 根据这些角度和屏幕尺寸插入屏幕坐标。
  4. 在屏幕上打印目标。我设置了一组图像视图和文本视图来做同样的事情。
  5. 要实时更新这些目标,请尝试在onSensorChanged()中更新它们

    希望这些帮助。 :)

答案 1 :(得分:2)

常见问题清楚地表明,你不应该提出问题不足的问题。你问的不是“如何联系它们”,因为你所需要的并不是一个简短且可回答的问题。

但我可以建议你购买这本书,这是非常好的解释,并引导读者完成你想要做的事情:http://www.apress.com/9781430239451

不要忘记下载作者包含的几个源项目。从那里开始,如果您需要更具体问题的帮助,请启动一个新的简洁问题。

祝你有个愉快的一天。

答案 2 :(得分:0)

您可能正在寻找SurfaceView。我自己没有广泛使用它,但我知道这是ZXing条码扫描器在相机预览上叠加图像的方式。查看开发者指南:

http://developer.android.com/reference/android/view/SurfaceView.html

以及实际应用程序的ZXing源代码:

https://code.google.com/p/zxing/source/browse/trunk/android/src/com/google/zxing/client/android/CaptureActivity.java