无法在街景中触发事件

Unable to fire event in Streetview

本文关键字:事件      更新时间:2023-09-26

我无法在信息窗口中嵌入的街景中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);
});
您需要

添加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();
});

现在,每次这三个事件(链接、pov、位置(中的任何一个发生变化时,都会调用相关函数。