我无法在嵌入信息窗口的街景中的 pano_change
上触发事件。每次用户在街景信息窗口中导航时,我都需要获取对象 StreetViewPanorama
的数组 getLinks()
和 getPosition()
。其声明如下。我真的不明白为什么(它适用于标记和信息窗口上的事件)。
//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、位置)中的任何一个发生变化时,都会调用相关函数。
关于javascript - 无法在街景中触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10669472/