清晰的街景全景? (太多活跃的webgl上下文)

时间:2017-01-18 22:18:00

标签: javascript google-maps-api-3 webgl google-street-view

我正在使用谷歌街景全景,我会慢慢地自动平移。此外,我每隔30秒更新一次位置,并用新的全景替换当前的全景 我遇到的问题是,经过一段时间后,性能下降,我收到消息"too many active webgl contexts..."

如何在制作新版本之前删除/发布/清除google streetview pano(及其webgl上下文)?

我尝试只调用new google.maps.StreetViewPanorama(document.getElementById('streetview')一次(全局)重用现有的上下文,然后在我的函数中更新它。这确实摆脱了错误并且只要我没有平移就可以工作 - 但如果我这样做,新旧街景混合在一起并随机闪烁。

此外,我尝试在重新使用之前清除div层,但这似乎不会释放webgl上下文。

function renderStreeview() {
  var streetViewService = new google.maps.StreetViewService();
  var panorama = new google.maps.StreetViewPanorama(document.getElementById('streetview'), { disableDefaultUI: true, showRoadLabels: false} );
  streetViewService.getPanorama({ location: destination, radius: 10 }, processSVData);

  function processSVData(data, status) {
    panorama.setPano(data.location.pano);
    var panoheading = 270;
    setInterval(function(){   // pano panning animation
      panorama.setPov({
        heading: panoheading,
        pitch: 3,
        zoom: 2,
      });
      panoheading = (panoheading + 0.06); // panning speed
    }, 50);   // panning framerate (20 fps)
    panorama.setVisible(true);
  }
}

0 个答案:

没有答案
相关问题