Клуб API Карт

Как скрыть метку с коллекции на карте?

matyin79
26 августа 2016, 13:22

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

collections = new ymaps.GeoObjectCollection();
collections.add(new ymaps.Placemark(...));
		map.geoObjects.add(collections);
		map.geoObjects.each(function (geoObject) {
			console.log(geoObject.properties.getAll());
		});

10 комментариев
geoObject.options.set('visible', false);
dimik,
как это сделать у нужной метки?
matyin79,
Что значит у нужной?
кстати, почему то geoObject.properties.get('id') в этом цикле пишет undefined,
хотя метки на карте видны.


matyin79,
Значит вы  не добавили поле id в properties
dimik,
в properties вообще пусто.
решил так и работает
var result = ymaps.geoQuery(map.geoObjects);
  for (var i = 0; i < result._objects.length; i++) {
if(result._objects[i].properties._data['abbrev'] == 'constanta'){
result._objects[i].options.set('visible', true);

}
}
получается через ж//у, но работает :)
должен быть метод лучше, уверен.
matyin79,
Да уж тяжелый случай. Я вижу в документацию заглянуть сложнее чем в консоль.
Педальные поля не надо использовать, используйте задокументированные интерфейсы, например метод search
dimik,
я не понял как выставить options.set('visible', false) через search
result.search('properties.abbrev == constanta').options.set('visible', false); ? ))


matyin79,
https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/GeoQueryResult-docpage/#setOptions
dimik,
да так лучше спасибо!