2016-05-20 7 views
-1

Ich muss erkennen können, wenn ein Nutzer in ein Google Maps-Infofenster klickt, um Street View aufzurufen. Dies kann passieren, nachdem der Benutzer auf eine Karte auf einer Karte geklickt hat, beispielsweise für ein Restaurant oder was auch immer. Sie klicken auf den Marker auf der Karte und dann erscheint ein Info-Fenster, in das sie klicken können, um Street View zu betreten.Erkennen der Eingabe von Street View nach Klicken des Nutzers im Google Maps-Infofenster

Öffnet Street View auch ein neues Objekt oben auf der Karte oder wird die Street View innerhalb des Kartenobjekts geöffnet? Wie soll man mit diesem nicht standardisierten Eintrag in Street View umgehen? Ich stelle fest, dass der Benutzer durch Klicken auf einen Rechtspfeil oben links in der Straßenansicht zur Karte zurückkehren kann. Ich stelle außerdem fest, dass die Eigenschaft "panorama.getVisible()" false ist, nachdem der Benutzer Street View auf diese Weise eingegeben hat.

+0

Haben Sie ein Beispiel zur Verfügung? Aus der Beschreibung ist nicht klar, was Sie erreichen möchten. Klickt das Klicken auf infoWindow, um StreetView zu öffnen, bereits für Sie oder benötigen Sie Hilfe mit diesem Teil? Oder hast du das schon, nur ein paar Verbesserungen? Teilen Sie die Teile des Codes, wenn Sie möchten, dass wir Ihnen helfen können –

+0

Hier ist ein Beispiel. Meine App ist http://globebop.com/web. Klicken Sie auf die Schaltfläche Kartenansicht rechts neben dem Globus. Diese Schaltfläche führt Sie zwischen Street View und Map View hin und her. Beachten Sie, dass wenn Sie wiederholt auf diese Schaltfläche klicken, es funktioniert. Gehe jetzt zur Kartenansicht. Sie sollten auf der Karte einige runde Google Map-Markierungen sehen, die beim Anklicken eine Grafik mit der Aufschrift "Street View" anzeigen. Klicken Sie auf eine solche Grafik, um Street View aufzurufen. Dies ist das Ereignis, das ich erkennen muss. Wenn Sie jetzt auf die Schaltfläche Kartenansicht/Street View klicken, funktioniert das nicht. –

Antwort

0

Haben Sie das 'visible_changed' Ereignis versucht? Hier ist ein Beispiel, das für mich mit dem getVisible() funktioniert.

<!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> 

Vielleicht ist Ihr Projekt komplexer und braucht mehr Anpassung. Aber ansonsten enthält das Infowindow in der neuen API (ver> 3.22) keine streetview.

Verwandte Themen