Клуб API Карт

Скрыть/показать маркеры в коллекции

arthur.mudrick
5 июля 2017, 01:05

Создал коллекцию, чтобы легче со всеми маркерами в ней управляться:

var markerCollection = new ymaps.GeoObjectCollection();

добавил в неё маркеры и добавил коллекцию на карту.

Удалить все маркеры можно через `removeAll`.

А как скрыть все маркеры разом, одной функцией?

В консоли вывел коллекцию, но в методах не нашел подходящей функции.

Пытался сделать так:

markerCollection.options.set('visible', false);

не скрывает маркеры.

Пытался сделать так:

map.geoObjects.options.set('visible', false);

но так прячутся только обычные объекты, а коллекции не прячутся.

Или мне остается только через `each` пройтись по всем маркерам в коллекции и уже им каждому задать `options.set('visible', false)`?

4 комментария
> не скрывает маркеры.


Соберите пример на jsfiddle
dimik,
https://jsfiddle.net/tjutsgru/ — набросал простенький пример и он идеально работал — маркеры скрывались всеми доступными способами.

Но потом я понял, в чем проблема в моем другом сетапе карты и маркеров — если при создании гео-объектов указывать им `visible: true`, то их нельзя никак скрыть.

Указал на жсФиддле всем маркерам `visible: true` и теперь их тоже стало ника не скрыть.

https://jsfiddle.net/tjutsgru/1/ — единственный, но слишком многословный способ скрыть маркеры это пробежаться по каждому через `.each`.
arthur.mudrick,
Указание опции у маркера имеет более высокий приоритет, чем коллекции. Хотите управлять через коллекцию – не устанавливайте опцию маркерам.
dimik,
ясно, спасибо, так и сделаю.