Клуб API Карт

Кастомизация поискового контрола

ivan-zykov
14 октября 2016, 17:45

Добрый день. Сделал поиск не по объектам карты, а по базе данных, а уже скрипт возвращает названия и координаты, на которые уже масштабируется карта и открывается балун найденного объекта. При этом в результатах поиска может быть до нескольких десятков вариантов. Нужно как-то кастомизировать стандартный поисковый контрол, чтобы при переходе по одному из результатов не закрывался список найденных результатов. Кроме того, хочется не показывать все, скажем, 100 результатов поиска в списке, а, например, по 20, и добавлять кнопку "Показать ещё 20". Можно ли сделать такие вещи со стандартным контролом? И как изменить поведение карты при клике на результат поиска? Нужно масштабировать не до максимального масштаба, а до определённого.

Если нет, то тогда хотелось бы понять, как сделать свой контрол. Сделать свой layout для SearchControl? Или создавать новый пользовательский контрол? Есть такой пример: https://yandex.ru/blog/ymapsapi/1631, но там нет многих нужных вещей. К тому же, нет примера, как реализовать список с поисковыми результатами (именно результатами, а не подсказками при вводе - они как раз-таки не нужны).

Очень надеюсь на подсказку.

6 комментариев
Подписаться на комментарии к посту
Пример своего контрола есть в песочнице.

dimik,
Вы бы хоть как-то немного поподробнее написали. Про layout, например. Или для моих задач SearchControl вообще не подойдёт?
ivan-zykov,
Я вам уже писал в другой теме – пишите свой контрол. И в нем вы сможете сделать так как хотите.


Про layout – смена макета даст лишь смену внешнего вида контрола. Логика работы не изменится. 
dimik,
Спасибо. То есть надо описывать все реакции и элементы поиска (список результатов, перелистывание и т.п.) самостоятельно? Нет примера того, как написан стандартный поисковый контрол?
ivan-zykov,
Я честно не вижу тут проблемы для реализации (если только лень), требующей каких-то там подробных примеров.
Создать на карте ОДИН инпут, слушать на нем события, и показывать под ним список это не rocket science. Многие css-фреймворки типа Bootstrap предоставляют готовые реализации поисковых полей с результатами – даже не нужно практически ничего делать.


Стандартную реализацию можно попробовать найти в коде АПИ, подключив его в режиме дебаг 
dimik,
Проблем нет, займусь этим сам, просто не хотелось изобретать велосипед, если вдруг такая реализация уже есть. Спасибо за ответ.