Клуб API Карт

Странный баг при использовании objectManager

enative
8 мая 2015, 17:45

Столкнулся с довольно странным багом при использовании objectManager. Последовательность действий при которой он возникает следующая:

- добавить 1 объект (с балуном открывающимся по событию mouseenter) в objectManager (add)

- показать объект на карте

- удалить все объекты из objectManager (removeAll)

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

- показать объект на карте

 

При последнем действии метка объекта отображается на позиции первого объекта (т.е. старые координаты), а при наведении на нее открывается балун, но уже на месте с новыми координатами (там где должен быть второй объект. Такое впечатление, что срабатывает какой то кэш. Если координаты 1го и 2го объектов отличаются существенно, все отображается нормально.

Может кто-то сталкивался с таким поведением?

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

Можете собрать минимальный пример воспроизводящий проблему?

Сделал пример - http://goo.gl/PWluiL

 

По ходу воспроизведения примера нашел причину такого поведения - это одинаковые id у первого и второго объекта. Если они разные, то все работает как должно быть.

Но по сути должно же работать даже если идентификаторы одинаковые, т.к. по коду перед отображением второго объекта происходит полное очищение ObjectManager и одинаковые идентификаторы не должны влиять на отображение. Или я не прав?

Кто нибудь ответит?

пример - 404