嵌入多个街景视图,但一次只能显示一个

时间:2013-12-30 15:00:27

标签: jquery google-maps-api-3 photosphere

我正在尝试嵌入多个占用整页的街景全景图(技术上的光球) - 一次只能看到一个。

我以为我会创建单独的全景图并将它们附加到不同的div,隐藏除活动div之外的所有div,然后使用一些缩略图链接隐藏并使用jQuery显示相关的div。

这几乎可以使用,但最初隐藏的全景图不显示任何图像(控件在那里,但不是图像本身)。

我需要在API中设置一些内容吗?或者也许有更好的方法来做到这一点?

我现在的代码是:

function carparkPano() {
  var carparkID = "GPHkasenHbQAAAAGOrVDmQ";
  var carpark = {
    pano: carparkID,
    pov: {
      heading: 290,
      pitch:15
    },
    zoom: 0,
    addressControl: false
  };
  var myPhotoSphere = new google.maps.StreetViewPanorama(
      document.getElementById('pano1'),
      carpark);
  myPano.setVisible(true);
}

function rooftopPano() {
  var rooftopID = "VaIS8soJyPAAAAAGOsbvQA";
  var rooftop = {
    pano: rooftopID,
    pov: {
      heading: 0,
      pitch:10
    },
    zoom: 1,
    addressControl: false
  };
  var myPhotoSphere = new google.maps.StreetViewPanorama(
      document.getElementById('pano2'),
      rooftop);
  myPano.setVisible(true);
}

google.maps.event.addDomListener(window, 'load', carparkPano);
google.maps.event.addDomListener(window, 'load', rooftopPano);

有什么想法吗?

感谢

1 个答案:

答案 0 :(得分:0)

我认为您可能需要在显示div后对其进行初始化,因此最终会看起来像这样:

$(document).on('click', '#idOfElementTriggeringMap', function(){
    $('#pano2').show();
    ininitalizeMap('pano2');
  }
});

function initializeMap(map){
  // do map initialization here...
}

<强>更新

此后我发现了另一篇帖子,建议在显示div之后调用地图的resize事件,我认为这会产生同样的效果:

Google map display from a hidden area