Клуб API Карт

Динамическое обновление карты и содержимого кластеров при удалении/добавлении меток

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

Всем привет!

 

Нужно сделать что-то аналогичное этому примеру, но с использованием кластеров. Мой вариант работает следующим образом: каждая метка добавляется сразу в несколько категорий (объекты на карте группируются по названию, региону, виду деятельности). При клике по ссылке (например "Москва") с карты должны удаляться или опять добавляться метки, у которых в одной из категорий присутствует этот термин (например, находящиеся в Москве).

 

Код такой (очень упрощенно):

 

$('a').click(function() {

// здесь код, который определяет по какой ссылке кликнули и что нужно сделать (скрыть или показать) с метками из выбранной категории и выполняющий заданное действие с метками

}

 

Для удаления метки с карты я удаляю ее из массива GeoCollectionBounds(), для добавления - добавляю в него.

Это нормально работает, если на карте нет кластеров.

 

При наличии кластеров поступаю так:

clusterer.remove(obj); // удаляю метки из кластера

...

clusterer.add(obj); // добавляю метки в кластер

 

obj - это объект типа IGeoObject

 

Проблемы две:

1. если на карте есть одиночные метки и кластеры, то число объектов в кластерах меняется, а одиночные метки с карты не удаляются

2. если кликнуть по кластеру и после этого кликом по ссылке пытаться удалить/добавить метки - ничего не происходит

 

Что я делаю не так?

 

Заранее благодарен за ответ

 

 

3 комментария

В прошлой версии был баг, связанный с удалением меток из кластеризатора. В новой версии 2.0.13 это исправлено, попробуйте переключиться на свежий релиз.

При таком способе загрузки вы получите самую свежую версию апи, сейчас это 2.0.13, там баг с удалением исправлен - но она увидела свет только вчера или позавчера - до этого на ваш сайт подгружалась предыдущая версия апи. Так что нужно проверить, осталась бага или починилась.

 

Вообще при подключении апи на сайт советую указывать точную версию, чтобы неожиданные обновления не ломали код (всякое бывает).

http://api-maps.yandex.ru/2.0.13/?load=package.full&modules=pmap&mode=debug&lang=ru-RU