2012-06-16 75 views
4

我創建了街景主幹視圖。問題是,當顯示時,全景圖完全是灰色的。我不確定它是否與選項卡內的事實有關,並且在打開選項卡時呈現全景圖。完全灰色的街景全景

我猜測這可能是一個類似的問題,固定調用resize事件。有沒有類似的事情可以做?

App.DetailStreetView = Backbone.View.extend({ 
    initialize: function() { 
     this.latLng = new google.maps.LatLng(37.869085,-122.254775); 
    }, 
    render: function() { 
     var sv = new google.maps.StreetViewService(); 
     this.panorama = new google.maps.StreetViewPanorama(this.el); 
     sv.getPanoramaByLocation(this.latLng, 50, this.processSVData);   
    }, 
    processSVData: function(data, status) { 
     if (status == google.maps.StreetViewStatus.OK) { 
      // calculate correct heading for POV 
      var heading = google.maps.geometry.spherical.computeHeading(data.location.latLng, this.latLng); 
      this.panorama.setPano(data.location.pano); 
      this.panorama.setPov({ 
       heading: 270, 
       pitch:0, 
       zoom:1, 
      }); 
     } 
    }, 
    refresh: function() { 
     this.panorama.setVisible(true); 
     google.maps.event.trigger(this.panorama, 'resize'); 
    } 
}); 

編輯:

我創建了一個的jsfiddle是複製問題:http://jsfiddle.net/kNS2L/3/

+0

你可以發佈一個鏈接到你的完整的實時代碼,所以我們可以調試它嗎?這是不夠的。 –

+0

加入我的主幹應用程序試圖連接的jsfiddle但 – AlexBrand

回答

5

啊,這是老display:none地圖和全景。它適用於我添加setVisible(true)

$('button').click(function() { 
     $('#pano').show(); 
    panorama.setVisible(true); 
    }); 
+0

看來,這仍是一個問題。檢查此的jsfiddle http://jsfiddle.net/kNS2L/6/ – AlexBrand

+1

我看到你開始你的第二個問題,另外一個問題。由於我的回答是回答第一個問題,你是否介意接受它,然後將第二個問題的討論轉移到另一個問題上? –

+0

如果您使用的是jquery'.show()',我只注意到'.setVisible'解決方案只在'.show'沒有設置持續時間時才起作用。可能是因爲'.show'在持續時間完成之前被觸發並更新了'display:none'樣式。 – johntrepreneur