Другой стратегией было бы написать
GEvent.addListener(marker, 'click', function()
{
var iwAnchor = marker.getIcon().infoWindowAnchor;
var iconAnchor = marker.getIcon().iconAnchor;
var offset = new GSize(iwAnchor.x-iconAnchor.x,iwAnchor.y-iconAnchor.y);
map.openInfoWindowHtml(marker.getLatLng(),'this is the data',{pixelOffset:offset});
});
, а затем вместо вызова clearOverlays () прокручивайте маркеры один за другим, удаляя их.
Открывая информационное окно на карте вместо маркера, оно не закрывается автоматически при удалении маркера.
Информационное окно теперь является наложением, поэтому clearOverlays удаляет его, поэтому вы не можете использовать clearOverlays. Может показаться неэффективным циклически проходить по вашим маркерам, удаляя их один за другим, но clearOverlays выполняет очень похожую петлю внутри.
Вычисления iconAnchor выше просто помещают информационное окно в то же место, которое было бы, если бы вы использовали marker.openInfowindowHtml, а не у подножия маркера.