На карте добавлено множество меток с помощью ObjectManager. Нужно сделать так, чтобы при клике на любую метку карта центр карты перемещался на метку (реализовано) и метка увеличивалась в размерах. При клике на другую метку предыдущая должна восстанавливать исходный размер и вся последовательность операций повторяться. Проблема с восстановлением исходного размера метки — не знаю, как реализовать.
Нашел пост, где в комметарии предлагается вариант решения схожей проблемы. В моем случае такой вариант не подошел, поскольку я не могу в получаемый json с данными для добавления в objectManager добавлять настройки для меток, да и как потом мне их переключать? Пробовал следующим образом (код обработчика клика на метке, для упрощения примем map и objectManager глобальными переменными):
function onPlacemarkClick(e) { const activeObject = e.get('target'); const id = e.get('objectId'); const coords = e.get('coords'); // перемещение карты map.setCenter(coords, 15, {duration: 200}); // установка параметров текущей метке objectManager.objects.setObjectOptions(id, { iconImageSize: [50, 50], iconImageOffset: [-25, -25] }); // попытка сброса параметров всем меткам в коллекции - не работает!! objectManager.objects.each(obj => { if (obj !== activeObject) { // ругается на метод set obj.options.set({ iconImageSize: [30, 30] }) } }); }
Ругается затейливо, вот фрагмент:
Я подозреваю, что нет такого метода, но что тогда нужно использовать для реализации требуемого функционала? Или вообще сменить подход?