Спрощуючи та розширюючи найбільш прихильне рішення , ви можете створити маркер під час обробки події клацання маркера, дозволяючи вам упакувати його видалення через closeclick
подію значка x одночасно.
Ось приклад, який включає уникнення створення дублікатів інформаційного вікна шляхом позначення логічного hasInfoWindow
статусу на маркерах.
newMarker.addListener('click', function () {
if (newMarker['hasInfoWindow'] !== true) {
newInfoWindow = new google.maps.InfoWindow({content: infoContent});
mapSet['infoWindowsObj'].push(newInfoWindow);
newMarker['hasInfoWindow'] = true;
newInfoWindow.open(mapSet, newMarker);
google.maps.event.addListener(newInfoWindow, 'closeclick', function () {
newInfoWindow.setMap(null);
newMarker['hasInfoWindow'] = false;
mapSet['infoWindowsObj'].filter(arrayItem => arrayItem !== newInfoWindow);
});
}
});
Потім, якщо ви хочете видалити всі відкриті інформаційні вікна через подію клацання на карті, ви можете переглядати вміст, mapSet['infoWindowsObj']
щоб повністю видалити кожне.
Я вважаю, що така поведінка дозволяє вам уникнути використання інформаційного вікна в більшості випадків без необхідності переробляти все це відповідно до спеціального спливаючого прикладу Google .