Я столкнулся с той же проблемой и исправил ее, создав глобальное информационное окно.
var infowindow = new google.maps.InfoWindow();
Тогда у меня есть функция для выполнения следующих действий при прослушивании щелчка:
function getInfoWindowEvent(marker) {
infowindow.close()
infowindow.setContent("This is where my HTML content goes.");
infowindow.open(map, marker);
}
Это позволяет добиться того, что, как мне кажется, вы ищете, потому что теперь на карте есть только одно информационное окно, и я просто закрываю его, перезагружаю содержимое и снова открываю для данного маркера.