如何自动旋转街景全景图?

时间:2012-08-22 08:06:20

标签: javascript google-street-view

如何使用API​​自动旋转街景全景图?

像这样Google gallery

2 个答案:

答案 0 :(得分:4)

您可以通过更改每个时间间隔的标题来使用JavaScript计时器(window.setInterval)进行旋转。这是一个简单的例子:Rotating Street View Panorama using Google Maps

答案 1 :(得分:1)

要更改全景角度,您必须更改Point-of-View参数,即heading 此变量以度为单位(0表示北,90表示东方,...)。

给出一个包含panorama的变量:

const panorama = new google.maps.StreetViewPanorama(container, opts);

使用getPov获取全景POV:

const oldPov = panorama.getPov();

然后用新值替换POV:

panorama.setPov({
  header : oldPov.header + 1,
  pitch  : oldPov.pitch
});

这会将视点顺时针旋转一度。现在您只需使用setInterval自动重复此代码:

let rotation = 1,   // In degrees
    interval = 100; // In milliseconds

const rotateId = setInterval(() => {
  const oldPov = panorama.getPov();
  panorama.setPov({
    header : oldPov.header + rotation,
    pitch  : oldPov.pitch
  });
}, interval);

setInterval需要传递给它的函数,在这种情况下它是arrow function

请注意,上述情况可能会让人感到紧张 减少interval会使其更新速度更快,但可能会降低性能 增加rotation会使其变得更快 摆弄这两个价值观你应该得到你想要的东西。

要阻止它,

clearInterval(rotateId);