用户在Google地图信息窗口中点击后检测进入街景视图

时间:2016-05-20 00:16:40

标签: javascript google-maps google-maps-api-3

我需要能够检测用户何时点击Google地图信息窗口进入街景视图。这可以在用户点击地图上的标记(例如餐馆或其他任何标记)之后发生。他们点击地图上的标记,然后出现一个信息窗口,他们可以点击该窗口进入街景视图。

此外,是否在地图顶部的新对象中打开街景视图,还是在地图对象中打开街景视图?如何处理这种非标准的街景视图?我注意到用户可以通过单击街道视图左上角的右箭头返回地图。我还注意到,在用户以这种方式输入街景视图后,panorama.getVisible()属性为false。

1 个答案:

答案 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不包括街景。