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

Cha*_*era 1 android augmented-reality

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

所以,伙计们,我需要你们的帮助,如果你们知道有关此问题的任何帖子,请发表评论。

提前致谢。

编辑:实时相机预览

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


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

高崇軒*_*高崇軒 5

我在 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. 在屏幕上打印目标。我设置了一组图像视图和文本视图来执行相同的操作。

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

希望这些有帮助。:)