Клуб API Карт

10 комментариев
Не стоит размещать 10 экранов кода в посте (я его удалил).
Лучше создать пример на jsfiddle.net и выложить тут ссылку.


Случай с кластеризатором ничем не отличается, т.к. поиск происходит по исходным данным (массив points)
Что именно не получилось? У вас отсутствует код поиска из примера
tech@lancelab.ru
14 июня 2016, 08:01
На текущий момент ситуация следующая: https://jsfiddle.net/r9Lx3yy8/1/ 
У меня используется массив groups, вместо points, я, так понимаю, мне нужно подогнать код под структуру массива groups!?
tech@lancelab.ru,
Да, вам нужно заходить в каждую группу – будет еще один вложенный цикл
tech@lancelab.ru
14 июня 2016, 08:24
dimik,
Подскажите где добавить вложенный цикл, что-то не могу разобраться
tech@lancelab.ru,

Примерно так
var points = [];


for (var i = 0, l = groups.length; i < l; i++) {
  var works = groups[i].works;
  for(var j = 0, len = works.length; j < len; j++) {
    var point = works[i];
    if (point.name.toLowerCase().indexOf(request.toLowerCase()) != -1) {
      points.push(point);
    }
  }
}
tech@lancelab.ru
14 июня 2016, 10:54
dimik,
толи я дурак, толи лыжи не едут, можете помочь рабочим примером?
tech@lancelab.ru,
Да уж как они поедут.
Вы поместили создание провайдера в функцию createMenuGroup, т.е. у вас создается 3 провайдера, которым передается всего один элемент массива groups и для каждого добавляется отдельный контрол.
Плюс вы не убрали добавление обычного поискового контрола при вызове карты со стандартным провайдером  'yandex#search'


    // Создание экземпляра карты.
var myMap = new ymaps.Map('map', {
center: [46.95, 142.74],
zoom: 14,
   controls: ['zoomControl', 'searchControl', 'typeSelector', 'fullscreenControl']
}, {
searchControlProvider: 'yandex#search'
}),
tech@lancelab.ru
14 июня 2016, 12:11
dimik,
Поправил, но результат через раз выводится (undefined name выскакивает)  https://jsfiddle.net/r9Lx3yy8/2/
tech@lancelab.ru
14 июня 2016, 12:24
Решил задачу следующим образом: https://jsfiddle.net/r9Lx3yy8/3/ . Спасибо dimik