2016-04-11 61 views
6

我一直试图从谷歌街景数据中获取数据一段时间。出于研究目的,我需要能够估计某个特定地图位置的天空区域。这就是为什么我需要对球形视图进行估计,并且我认为使用Google街景视图会是一个好主意。我真正需要的是一个3d方向,我应该能够告诉像素在这个方向上的颜色是多少。谷歌街景:获取街景数据的替代方式

我刚才提出的是以下内容。我使用Google Street View Image API为立方体纹理(尤其是我提交6个查询与参数使用它们下载6张图片:

(heading, pitch) = {(0, 0), (90, 0), (180, 0), (270, 0), (0, 90), (0, -90)} 

当我映射那些6个图像立方体我所得到的是这样的:

corner example

的问题是,它似乎有一些数值误差和边角失配。我有一个想法如何解决它,但复杂性的增长受到了很多。

我也看了一下javascript中的PI,但找不到从那里访问数据的方法。有UV贴图offcial指南

enter image description here

上一提,但似乎这是针对只为用户生成的内容。

我错过了什么吗?有没有其他方法可以做到这一点?

+0

你只贴一个图像......你能告诉我其他5幅图像,你得到了什么? –

+0

@SariAlalem在措词上有错误。对此感到抱歉 – svs

+0

您是否尝试了360度视频片段?YouTube上有一大堆球形框架:https://www.youtube.com/channel/UCzuqhhs6NWbgTzMuM09WKDQ – PseudoAj

回答

1

基本上你想做谷歌已经做的事情,但你需要它的3D表示。

使用下面的方法(并不容易),你可以得到更好的结果,但并不完美。基本理论是这样的:

  1. 获取图像列表(6或更多,一些使用8; 6为水平视图和2为顶部和底部)。
  2. 使用您偏好的方法将图像拼接在一起,您可以在拼接图像here时找到帮助。
  3. 拼接,你会最终有一个单一的形象后,这将是你的纹理
  4. 构建一个三维形状(球形,六角形或缸)
  5. 应用纹理的三维形状
  6. 随身携带试验:a)图片downladed。 b)拼接。 c)纹理映射。以获得更好的效果

这是(可能)Google遵循的过程,以便您可以在其服务中看到360视图,并且您需要执行相同操作以获取代码中的3D表示,但它将不会是完美的,因为你得到的图像不是由谷歌拍摄的原始图像(这使得拼接更难)。

Readmore它herehere

+0

感谢您的建议。当我提到:“我有一个想法如何解决它”这正是我想到的。问题是我一直在试验这种方法一段时间,我没有得到好的结果。我正在寻找更简单的方法。如果没有其他答复,我会奖励你的努力。 – svs

+0

另一个想法是,如果您只是想要像素的颜色,则不需要将其映射到3D形状...只需使用最终的图像像素 –