תגובה לאירועים בהקשר מקומי

קל לארגן דפים בעזרת אוספים אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.

אם יש לכם פריסה שאמורה להשתנות כשמוצגת התצוגה של פרטי המקום, השתמשו במאזינים לאירועים placedetailsviewshowstart ו-placedetailsviewhidestart. בדוגמה הבאה יש שלושה מחוזות שמסומנים בסמנים מותאמים אישית. כשהמשתמש לוחץ על אחד מהסמןים המחוזיים האלה, InfoWindow נפתח ומתאר את המחוז. אם משתמש לוחץ על נקודת עניין כאשר InfoWindow פתוח, InfoWindow ייסגר כשתצוגת פרטי המקום של נקודת עניין תופיע ותיפתח מחדש כשהמשתמש יסגור את תצוגת פרטי המקום.

להבין את הקוד

ניהול InfoWindow עם פרטי מקום הצגה

כשתצוגת הפרטים של המקום נפתחת וקוראים ל-InfoWindow.close(), ה-InfoWindow הפתוח יוסר מ-DOM. כדי ליצור את ההשפעה של "re-opening" InfoWindow, צריך לאחסן את המאפיינים של InfoWindow'במשתנה שנמצא מחוץ ל-DOM כדי שתוכלו ליצור מחדש את InfoWindow כשתרצו להציג אותו שוב. הזמן הטוב ביותר לשמור את המידע במשתנה אחסון הוא כשיוצרים את InfoWindow.

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

מאוחר יותר, כשהתצוגה של פרטי המקום סגורה, אפשר לקרוא לאותה פונקציה של InfoWindow ליצירת פונקציה כדי ליצור מחדש את InfoWindow האחרון שהיה פתוח.

TypeScript

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

JavaScript

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

עדכון מקור המסלול

מכיוון שיש במפה כמה סמנים מחוזיים שמהם המשתמש יכול לבחור, אנחנו מעדכנים את המקור של directionsOptions למחוז שבו בוצע הקליק האחרון, באמצעות הקווים האלה במאזין הקליקים של הסמן. הסימון הזה מראה שאפשר לעדכן את directionsOptions גם אחרי ההפעלה של localContextMapView.

דוגמה