Клуб API Карт

умножение меток в кластеризаторе

Пост в архиве.

Пример http://egorl.ru/eeyore/ (в IE работает неправильно, совсем.)

Если изменить размер окна, то количество меток в кластере увеличивается произвольно.

Хотя я перед каждым заполнением кластера его очищаю.

Даже не знаю на что смотреть.

5 комментариев

У вас какая-то логическая ошибка в скрипте - при изменении размеров окна сначала 2 раза подряд вызывается removeAll у кластеризатора, а потом 2 раза происходит его заполнение метками.

Ага!

Когда берёшь край окна и начинаешь тащить, срабатывает 

            myMap.events.add('boundschange', function () {
                clearMap();
                getPoints();
            });

а когда отпускаешь, второй раз. Если тащишь не плавно, то события дополнительно происходят.

Что же делать?

Не имеет значения, сколько раз приходит событие boundschange. У вас просто вызываются парой методы "почистить кластеризатор" - "заполнить кластеризатор".

А заполняете вы кластеризатор через ajax-запросы. Получается так:

1. Почистили кластеризатор.

2. Послали запрос за данными.

3. Почистили кластеризатор (а он еще пустой).

4. Послали запрос за данными (уже второй подряд).

5. Получили 1й ответ - добавили метки.

6. Получили 2й ответ - добавили метки по второму кругу.

Спасибо! Исправилось.

Но Вы меня балуете, я бы и сам через пару недель догадался.  ))