Добрый день, а есть ли у кого пример как реализовать поиск по собственным объектам, которые были загружены на карту с помощью ObjectManager?
Я пытался делать, взяв за основу данный пример: https://tech.yandex.ru/maps/jsbox/2.1/custom_search и даже получаю результат поиска, но не работает самаое главное, при выборе объекта из выпадающего списка я получаю ошибку в консоль "Uncaught TypeError: Cannot read property '1' of undefined" и больше ничего не происходит.
Собственно как я пытался сделать:
Создаю обжект менеджер:
objectManager = new ymaps.ObjectManager({ clusterize: true, gridSize: 32, groupByCoordinates: true, }); myMap.geoObjects.add(objectManager)
И загружаю в него данные (этот момент опустил)
Создаю экземляр класса ymaps.control.SearchControl:
var mySearchControl = new ymaps.control.SearchControl({ options: { provider: new CustomSearchProvider(objectManager), noPlacemark: true, resultsPerPage: 5, size: 'large' } });
И собственно сам провайдер:
function CustomSearchProvider(points) { this.points = points; } CustomSearchProvider.prototype.geocode = function (request, options) { var deferred = new ymaps.vow.defer(), geoObjects = new ymaps.GeoObjectCollection(), offset = options.skip || 0, limit = options.results || 20; var search_points = this.points.objects.getAll(); var points = []; for (var i = 0, l = search_points.length; i < l; i++) { var point = search_points[i]; if(point.properties.search_text.toLowerCase().indexOf(request.toLowerCase()) != -1) { points.push(point); } } points = points.splice(offset, limit); for (var i = 0, l = points.length; i < l; i++) { var point = points[i], coords = point.properties.coords; geoObjects.add(new ymaps.Placemark(coords, { name: point.properties.address, description: point.properties.text, boundedBy: [coords, coords] })); } deferred.resolve( { geoObjects: geoObjects, metaData: { geocoder: { request: request, found: geoObjects.getLength(), results: limit, skip: offset } } }); return deferred.promise(); };
Помогите советом, что я делаю не так?