2

pano_change情報ウィンドウに埋め込まれているストリートビューでイベントを発生させることができません。ユーザーがストリートビュー情報ウィンドウでナビゲートするたびに、配列getLinks()getPosition()オブジェクトを取得する必要があります。StreetViewPanorama以下のように宣言します。理由がよくわかりません(マーカーと情報ウィンドウのイベントで機能します)。

//code here

var contentString = '<input type="button" value="Grab this picture" onClick="captureImage()" /> <div id="content" style="width:200px;height:200px;"></div>';      

//code here

var infowindow = new google.maps.InfoWindow({
    content: contentString
});

//code here//

google.maps.event.addListener(infowindow, 'domready', function() {
    if (pano != null) {
        pano.unbind("position");
        pano.setVisible(false);     
    }
    pano = new google.maps.StreetViewPanorama(document.getElementById("content"), {
        navigationControl: true,
        navigationControlOptions: {style: google.maps.NavigationControlStyle.ANDROID},
        enableCloseButton: false,
        addressControl: false,
        linksControl: false 
    });

    pano.bindTo("position", marker);
    pano.setVisible(true);

});
4

1 に答える 1

2

google.maps.event.addListener(pano, 'links_changed', XXXX)イベントを取得するには、と を追加する必要がありgoogle.maps.event.addListener(pano, 'position_changed', XXXXX)ます。

初期化

var pano = new google.maps.StreetViewPanorama(<element>, panoramaOptions);
google.maps.event.addListener(pano, 'pano_changed', function() {
    // whatever
});

google.maps.event.addListener(pano, 'links_changed', function() {
    var links = pano.getLinks();
    for (var i in links) {
        // whatever
    }
});

google.maps.event.addListener(panorama, 'position_changed', function() {
    var newPos = pano.getPosition();
});

google.maps.event.addListener(pano, 'pov_changed', function() {
    var newPoV = panorama.getPov();
});

これで、これら3つのイベント(リンク、ハメ撮り、位置)のいずれかに変更があるたびに、関連する関数が呼び出されます。

于 2012-05-20T04:11:47.643 に答える