Auf „Lokaler Kontext“-Ereignisse reagieren

Falls sich das Layout ändern soll, wenn die Ansicht mit den Details zum Ort zu sehen ist, verwenden Sie die Event-Listener placedetailsviewshowstart und placedetailsviewhidestart. Im Beispiel unten sind drei Bezirke durch benutzerdefinierte Markierungen gekennzeichnet. Wenn der Nutzer auf eine der Markierungen klickt, wird ein InfoWindow geöffnet, in dem der Bezirk beschrieben wird. Wenn ein Nutzer auf einen POI klickt, während das InfoWindow geöffnet ist, wird das InfoWindow geschlossen, sobald die Ansicht mit den Ortsdetails des POIs eingeblendet wird. Schließt der Nutzer die Ansicht, wird das Infofenster wieder angezeigt.

Code verstehen

InfoWindow mit Ereignissen der Ortsdetailansicht verwalten

Wenn die Detailansicht des Ortes geöffnet wird und Sie InfoWindow.close() aufrufen, wird das geöffnete InfoWindow aus dem DOM entfernt. Damit das InfoWindow wieder geöffnet wird, müssen die Attribute von InfoWindow in einer Variablen außerhalb des DOMs gespeichert werden, damit das InfoWindow neu erstellt werden kann, wenn es wieder zu sehen sein soll. Wir empfehlen, die Informationen beim Erstellen von InfoWindow in einer Speichervariablen zu hinterlegen.

let infoStorage;

function createInfoWindow(district, marker) {
  // Build the content of the InfoWindow
  let contentDiv = document.createElement('div');
  ...

  // Create and open a new InfoWindow
  infoWindow = new google.maps.InfoWindow();
  infoWindow.setContent(contentDiv);
  infoWindow.open(map, marker);

  // Store key properties of the InfoWindow for future restoration
  infoStorage = {
    'district': district,
    'marker': marker,
  };
}

Wenn die Ansicht mit den Ortsdetails geschlossen ist, können Sie dieselbe InfoWindow-Erstellungsfunktion aufrufen, damit das zuletzt geöffnete InfoWindow noch einmal angezeigt wird.

TypeScript

localContextMapView.addListener("placedetailsviewhidestart", () => {
  if (infoStorage) {
    createInfoWindow(infoStorage.district, infoStorage.marker);
  }
});

JavaScript

localContextMapView.addListener("placedetailsviewhidestart", () => {
  if (infoStorage) {
    createInfoWindow(infoStorage.district, infoStorage.marker);
  }
});

Startpunkt der Wegbeschreibung aktualisieren

Da auf dieser Karte mehrere Bezirksmarkierungen für den Nutzer zur Auswahl stehen, wird der Ursprung für directionsOptions auf den zuletzt angeklickten Bezirk aktualisiert. Dazu werden die Zeilen im Klick-Listener der Markierung genutzt. directionsOptions lässt sich also auch nach der Initialisierung von localContextMapView aktualisieren.

Testbeispiel