Всем привет.
Вчера полдня потерял из-за того, что нет "защиты от дурака" в методе placemark.balloon.open();
Но сначала о кластере.
Пример1:
Итак, имеем метки. И есть список меток, при клике на любой позиции списка - открываем балун метки.
Все работает хорошо. Усложняем задачу.
Пример2:
Теперь эти метки помещаем в кластерер. В итоге:
- если метки при масштабе не в кластере - все ОК
- если метки объединились в кластер - при попытке клика на элементе списка получаем ошибку. Это правильно, метки нет на карте, но вот эта ошибка все портит. На клиенте проверять где она находится думаю более трудоемкая задача, чем в АПИ.
Предложение как раз и состоит в том, то при вызове метода .balloon.open() просто проанализировать, если метка не на карте, то и не надо ничего делать. Это две строчки кода, но они очень полезные.
Например, добавил метку, вызвал вывод балуна, но не поместил ее на карту. Добавил метку в кластерер, вызвал вывод но не добавил кластерер на карту. И прочие "не очень правильные" ситуации.
Эта проблема из-за того, что балун - это сущность метки (карты, кластера), а не отдельная сущность.