Проблема при кластеризации 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 маркеров с одинаковым адресом не появляется на карте. Подскажите, пожалуйста, как можно решить данную проблему(задачу)? Карта с маркерами с одинаковым адресом


Ответы (0 шт):