1

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

因此,伙计们,我需要您的帮助,如果您知道有关此问题的任何帖子,请善意地发表评论。

提前致谢。

编辑:实时相机预览

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


请原谅我的声望不到10,所以不能上传图片。
希望这将有助于理解我的问题。

4

3 回答 3

5

我也在安卓上做了类似的事情。假设您要在预览中打印的内容称为目标。

你肯定知道这些目标的坐标是什么,包括纬度经度和高度。假设这些坐标分别是 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. 在屏幕上打印目标。我设置了一组图像视图和文本视图来做同样的事情。

对于这些目标的实时更新,请尝试在 onSensorChanged() 中更新它们

希望这些帮助。:)

于 2013-05-28T09:01:12.187 回答
2

常见问题解答清楚地表明您不应该问范围很广的问题。您要问的不是“如何链接它们”,因为您需要的绝不是一个简短且可回答的问题。

但我可以推荐你买这本书,它解释得非常好,指导读者几乎完全完成你想做的事情:http: //www.apress.com/9781430239451

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

祝你今天过得愉快。

于 2013-03-09T07:55:23.033 回答
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

于 2013-03-09T07:45:20.357 回答