我需要能够检测用户何时点击Google地图信息窗口进入街景视图。这可以在用户点击地图上的标记(例如餐馆或其他任何标记)之后发生。他们点击地图上的标记,然后出现一个信息窗口,他们可以点击该窗口进入街景视图。
此外,是否在地图顶部的新对象中打开街景视图,还是在地图对象中打开街景视图?如何处理这种非标准的街景视图?我注意到用户可以通过单击街道视图左上角的右箭头返回地图。我还注意到,在用户以这种方式输入街景视图后,panorama.getVisible()属性为false。
答案 0 :(得分:1)
你有没有尝试过' visible_changed'事件?这是一个使用getVisible()的示例。
<!DOCTYPE html>
<html>
<head>
<title>Catch panorama change</title>
<meta name="viewport" content="initial-scale=1.0">
<meta charset="utf-8">
<style>
html, body {height: 100%; margin: 0; padding: 0;}
#map {height: 100%;}
</style>
</head>
<body>
<div id="map"></div>
<script>
var map;
var panorama;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 49.288, lng: -123.11},
zoom: 17
});
panorama = map.getStreetView();
panorama.addListener('visible_changed', function() {
if (panorama.getVisible()) {
console.log('Entering streetview');
} else {
console.log('Leaving streetview');
}
});
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?v=3.20&key=YOUR_API_KEY&callback=initMap" async defer></script>
</body>
</html>
也许您的项目更复杂,需要更多调整。但是在新的API(ver&gt; 3.22)中,infowindow不包括街景。