в общем пошел другим путём ...
создаю массив маркеров по id который получаю
...........
//координаты маркера
var lat = ...;
var lng = ...;
var point = new google.maps.LatLng(parseFloat(lat),parseFloat(lng));
//присваиваем иконке изображение (в моём случае разные) поэтому нужна переменная
var myicon = ...;
//создаём балун для каждого маркера с различным контентом
var contentString = '<div id="balloon">....</div>';
var infowindow = new google.maps.InfoWindow({
content: contentString
});
//создаём сам маркер
markers[id] = new google.maps.Marker({
icon: myicon,
position: point,
map: MYMAP,
title: ...
});
//добавляем событие при клике по маркеру
google.maps.event.addListener(markers[id], 'click', function() {
infowindow.open(MYMAP,markers[id]);
});
..............
удаляю маркеры когда это нужно очень просто по тому же id по которому они были созданы
.......
markers[id].setMap(null);
.......