Поисковые подсказки по своим данным яндекс карты api
в данном примере показано как сделать поиск по своим объектам на самой яндекс карте. Проблема в том, что при вводе текста не отображается выпадающая панель с найденными обьектами.
Вопрос. Как добавить возможность отображения выпадающей панели через поиск по своим обьектам имено на яндекс карте.
Ответы (2 шт):
Выпадающая панель не отображается, потому что в примере у всех объектов уникальные названия — если вписать всё слово целиком, то будет сразу найден единственный релевантный вариант. А если напишите в поиске, например, одну только букву "Б" — получите выпадающую панель ;-)
Помимо панели с результатами поиска (которая появляется после нажатия Enter), существует панель поисковых подсказок, для которой также можно назначить кастомный провайдер. Пример тут.
Для того, чтобы отображались подсказки, в провайдере необходимо реализовать функцию .suggest()
В упомянутом примере это можно сделать так:
CustomSearchProvider.prototype.suggest = function (request, options) {
// Количество возвращаемых результатов.
var limit = options.results || 5;
var points = [];
// Ищем в свойстве text каждого элемента массива.
for (var i = 0, l = this.points.length; i < l; i++) {
if (this.points[i].text.toLowerCase().indexOf(request.toLowerCase()) != -1) {
var point = {
displayName: this.points[i].text,
value: this.points[i].text
};
points.push(point);
if (points.length >=limit) break;
}
}
return ymaps.vow.resolve(points);
};