На карте добавлено множество меток с помощью 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]
})
}
});
}Ругается затейливо, вот фрагмент:
Я подозреваю, что нет такого метода, но что тогда нужно использовать для реализации требуемого функционала? Или вообще сменить подход?