Проблема при кластеризации GMP с маркерами, имеющими одинаковую позицию
Имеется класс, который представляет из себя сделку.
constructor(id, stage, company_id, title, place, comments) {
this.id = id;
this.stage = stage;
this.company_id = company_id;
this.title = title;
this.place = place;
this.comments = comments;
}
}
Часть полей данного класса должны отображаться в информационном окне, которое должно отображаться при клике на маркер. Объекты класса Deal получаю извне, которые затем сохраняю в виде Map. Ключом у Map является тип сделки, а значением является массив объектов сделок. Функция создания infoWindow для каждого маркера реализована следующим образом:
.....
markers.forEach((marker) => {
let content;
marker.addListener('click', () => {
let position = marker.getPosition();
for (let deals of dealsMap.keys()) {
dealsMap.get(deals).forEach(el => {
if (position.lat() === el.place.lat && position.lng() === el.place.lng) {
content = el.title;
}
})
}
console.log(content);
const infoWindow = new google.maps.InfoWindow({
content: content,
});
infoWindow.open(map, marker);
})
...
})
Однако имеется нюанс, который характеризуется тем, что если в перебираемой Map имеются сделки, которые могут иметь одинаковые координаты - в этом случае, на карте у меня создается кластер, который (естественно) при клике на кластер не преобразуется в несколько маркеров с параллельным увеличением зума карты. По итогу, infoWindow маркеров с одинаковым адресом не появляется на карте. Подскажите, пожалуйста, как можно решить данную проблему(задачу)?
