Клуб API Карт

Поиск placemark

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

На карте в кластерере есть массив placemark'ов, у каждого из них есть уникальное properties. Надо найти нужный (по этому свойству) и поменять ему значок.

Подскажите, где и как его искать? 

9 комментариев

перебором через each?

)) остаётся вопрос где ))

 

cluster = new ymaps.Clusterer();var cggo = cluster.getGeoObjects();$.each(cggo, function(index, value) { alert(value.options.get("preset")); });

эта конструкция почему-то не работает

cggo.each(function(index, value) {})

так вроде

 

ошибка возникает раньше. не могу получить этот самый массив объектов (плейсмарков)

var cggo = cluster.properties.get('geoObjects');

Uncaught TypeError: Cannot call method 'get' of undefined

Сейчас в кластеризаторе нет удобного способа перебора геообъектов, которые были в него добавлены. Что вам мешает перебрать массив меток, которые были добавлены в кластеризатор, и найти в нем нужную метку?

тогда дурацкий вопрос (т.к. я любитель): если я перед добавлением массива меток в кластер присвою их пременной, это ведь будут уже два разных набора меток, так?

а вообще мне нужно поменять значок метки, которая соответствует строке в которую ткнул пользователь. а когда он ткнёт другую, вернуть его обратно.

туда

tht = th.options.get("preset"); //запоминаем цвет точкиth.options.set("preset", "twirl#redDotIcon");

обратно

th.options.set("preset", tht);

но так получается только если тыкать в саму метку, через её события

 

 

тогда дурацкий вопрос (т.к. я любитель): если я перед добавлением массива меток в кластер присвою их пременной, это ведь будут уже два разных набора меток, так?

нет это будет еще одна ссылка на массив