Merespons Peristiwa Konteks Lokal

Jika Anda memiliki tata letak yang seharusnya berubah saat tampilan detail tempat ditampilkan, gunakan pemroses peristiwa placedetailsviewshowstart dan placedetailsviewhidestart. Pada contoh di bawah, ada tiga distrik yang ditunjukkan oleh penanda kustom. Saat pengguna mengklik salah satu penanda distrik ini, InfoWindow akan terbuka yang mendeskripsikan distrik. Jika pengguna mengklik POI saat InfoWindow terbuka, InfoWindow akan tertutup saat tampilan detail tempat POI tersebut muncul dan akan dibuka kembali saat pengguna menutup tampilan detail tempat.

Memahami kode

Mengelola InfoWindow dengan peristiwa tampilan detail tempat

Saat tampilan detail tempat terbuka dan Anda memanggil InfoWindow.close(), InfoWindow yang terbuka akan dihapus dari DOM. Untuk membuat efek "membuka kembali" InfoWindow, Anda harus menyimpan properti InfoWindow dalam variabel di luar DOM, sehingga Anda dapat membuat ulang InfoWindow jika ingin menampilkannya kembali. Waktu terbaik untuk menyimpan informasi ke variabel penyimpanan adalah saat InfoWindow dibuat.

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,
  };
}

Kemudian, saat tampilan detail tempat ditutup, Anda dapat memanggil fungsi pembuatan InfoWindow yang sama untuk membuat ulang InfoWindow terakhir yang dibuka.

TypeScript

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

JavaScript

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

Memperbarui asal rute

Karena ada beberapa penanda distrik pada peta ini yang dapat dipilih pengguna, kami memperbarui asal untuk directionsOptions menjadi distrik yang terakhir diklik menggunakan garis ini di pemroses klik penanda. Hal ini menunjukkan bahwa directionsOptions dapat diperbarui bahkan setelah localContextMapView diinisialisasi.

Mencoba Contoh