Отвечаю:
Изначально я допустил ошибку, пытаясь добавить класс с иконке, а не к маркеру.
var ic = { //icon
url: icon, // url
scaledSize: new google.maps.Size(30, 30), // scaled size
origin: new google.maps.Point(0,0), // origin
anchor: new google.maps.Point(0, 0), // anchor
//define the shape
shape:{coords:[17,17,18],type:'circle'},
//set optimized to false otherwise the marker will be rendered via canvas
//and is not accessible via CSS
optimized:false,
};
var marker = new google.maps.Marker({
map: map, title: name , position: latlngset, icon: ic,
optimized: false
});
var myoverlay = new google.maps.OverlayView();
myoverlay.draw = function () {
this.getPanes().markerLayer.id='markerLayer';
};
myoverlay.setMap(map);
Обратите внимание на optimized:false, это означает, что рисовать мы будем не в canvas, а в div.
В итоге вся фишка в последних строчках и добавлении id к div маркеров.
И в конце в css добавляем -
#markerLayer img {
border-radius:50%!important;
border: 0px solid black!important;
}
Моя изначальная ошибка была в том, что я пытался добавить optimized: false к иконке, а не к маркеру.