5

ストリート ビューのバックボーン ビューを作成しました。問題は、表示するとパノラマが完全に灰色になることです。タブ内にあり、タブを開いたときにパノラマがレンダリングされるという事実と関係があるかどうかはわかりません。

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/

4

1 に答える 1

5

ええ、これはdisplay:noneマップとパノラマの古いものです。追加すると機能しsetVisible(true)ます:

  $('button').click(function() {
        $('#pano').show();
    panorama.setVisible(true);
    });
于 2012-06-16T01:12:29.930 に答える