control.SearchControl

Расширяет IControl, ICustomizable.

Элемент управления "Поиск по карте". Позволяет обрабатывать поисковый запрос пользователя и отображать результат в панели и на карте. <p>Каждый результат поиска представляется в панели элемента управления в виде двухстрочного блока. Для формирования блока используются поля name и description объекта-результата геокодирования.</p>

Конструктор | Поля | События | Методы

Конструктор

control.SearchControl([options])

Параметры:

Параметр Значение по умолчанию Описание
options

Тип: Object

Опции.

options.boundedBy

Тип: Number[][]

Прямоугольная область на карте, где предположительно находится искомый объект. При ранжировании объекты, находящиеся внутри указанной области, будут получать больший приоритет.

options.kind 'house'

Тип: String

Вид топонима (только для обратного геокодирования). Список возможных значений:
  • house - дом;
  • street - улица;
  • metro - станция метро;
  • district - район города;
  • locality - населенный пункт (город/поселок/деревня/село/...).
options.layout

Тип: Function|String

Макет элемента управления. В конструктор макета передается объект, содержащий поля:
  • control - ссылка на элемент управления;
  • options - менеджер опций элемента управления control.SearchControl.options;
  • data - менеджер данных элемента управления control.SearchControl.data;
  • state - менеджер состояния элемента управления control.SearchControl.state.
Макет меняет свой внешний вид на основе данных, состояния и опций элемента управления. Элемент управления, в свою очередь, реагирует на интерфейсные события макета и меняет значения полей control.SearchControl.state в зависимости от полученных команд. (Тип: конструктор объекта с интерфейсом ISearchControlLayout или ключ макета).
options.noCentering false

Тип: Boolean

false - автоматически располагать центр карты так, чтобы объект был виден целиком. true - не изменять центр карты при показе найденного объекта.

options.noPlacemark false

Тип: Boolean

false - автоматически добавлять в центр найденного объекта метку с открытым балуном, true - не добавлять. Если указать noCentering = true и noPlacemark = true, то при щелчке по результату поиска никаких видимых изменений на карте не произойдет.

options.noPopup false

Тип: Boolean

true - не показывать выпадающий список результатов, false - показывать.

options.position { top: 5, left: 104 }

Тип: Object

Положение элемента управления над картой. Задается в виде объекта со следующими полями:
  • top - отступ от верхнего края контейнера карты в пикселах;
  • right - отступ от правого края контейнера карты в пикселах;
  • bottom - отступ от нижнего края контейнера карты в пикселах;
  • left - отступ от левого края контейнера карты в пикселах.
Если при этом заданы одновременно и top, и bottom, то значение bottom игнорируется. Аналогично, если заданы одновременно и left, и right, то значение right игнорируется. Если элемент управления добавляется в группу элементов (например, в тулбар или раскрывающийся список), то значение position не применяется.
options.provider 'yandex#map'

Тип: IGeocodeProvider|String

Провайдер геокодирования. Доступный провайдер:
  • 'yandex#map' - поиск по карте.
options.resultsPerPage 3

Тип: Integer

Количество результатов поиска на странице. Максимальное значение - 20.

options.searchCoordOrder 'latlong'

Тип: String

Определяет каким образом нужно интрепретировать координаты в запросе. По умолчанию координаты будут обрабатываться как широта-долгота.

options.strictBounds

Тип: Boolean

Искать только внутри области, заданной опцией boundedBy. Объекты вне указанной области попадать в выдачу не будут.

options.useMapBounds

Тип: Boolean

Флаг, позволяющий учитывать при поиске границы видимой области карты. При значении true, рассчитанная область видимости имеет больший приоритет, чем заданная через boundedBy.

options.visible true

Тип: Boolean

Признак того, что элемент управления отображается.

options.width 240

Тип: Integer

Ширина элемента (в пикселах). Минимальное значение: 200.

Пример:

// Пример 1.
// Создаем карту и панель поиска
var map = new ym.Map('map', {
        center: [51.700684, 39.23291],
        zoom: 4
    }),
    searchControl = new ym.control.SearchControl({ provider: 'yandex#publicMap' });

// добавляем панель на карту в нужную позицию
map.controls.add(searchControl, { left: '40px', top: '10px' });

Поля

Имя Тип Описание
events IEventManager

Менеджер событий.

Унаследовано от IEventEmitter.

options IOptionManager

Менеджер опций.

Унаследовано от ICustomizable.

state data.Manager
Состояние элемента управления. Имена полей, доступных через метод data.Manager.get:
  • results - массив, содержащий результаты поиска;
  • currentIndex - индекс текущего выбранного элемента;
  • pageNumber - текущая страница выдачи результатов;
  • found - общее количество найденных результатов;
  • request - текущий активный запрос;
  • suggest - исправленный запрос;
  • expanded - признак, свернут или развернут элемент управления;
  • opened - признак, показана ли панель выдачи результата.

События

Имя Описание
close

Событие закрытия поисковой панели. Экземпляр класса Event.

collapse

Событие схлопывания поисковой панели. Экземпляр класса Event.

expand

Событие развертывания поисковой панели. Экземпляр класса Event.

load

Событие получения результатов поиска с сервера. Экземпляр класса Event.

mapchange
Сменилась карта. Поля данных:
  • oldMap - старая карта;
  • newMap - новая карта.

Унаследовано от IChildOnMap.

open

Событие открытия поисковой панели. Экземпляр класса Event.

optionschange

Изменение в опциях объекта.

Унаследовано от ICustomizable.

pagechange

Событие смены страницы с результатами поиска. Экземпляр класса Event.

parentchange

Сменился родительский объект.

Поля данных:

  • oldParent - старый родитель;
  • newParent - новый родитель.

Унаследовано от IChild.

resultselect
Событие выбора результата поиска. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • resultIndex - индекс выбранного результата.
resultshow

Событие показа выбранного результата поиска. Индекс выбранного результата можно получить через свойство события 'resultIndex'. Экземпляр класса Event.

submit

Событие отправления поискового запроса на сервер. Экземпляр класса Event.

Методы

Имя Возвращает Описание
close()

control.SearchControl

Закрывает панель с результатами поиска.

collapse()

control.SearchControl

Сворачивает панель с результатами поиска.

expand()

control.SearchControl

Разворачивает панель с результатами поиска.

getCurrentPage()

Integer

Returns индекс текущий страницы с результатами запроса. Индексы начинаются с 0.

getPageCount()

Integer

Возвращает количество страниц результатов текущего поискового запроса.

getParent()

IControlParent

Returns ссылку на родительский объект.

Унаследован от IControl.

getRequestString()

String

Возвращает строку, содержащую текущий поисковый запрос.

getResult(index)

util.Promise

Предоставляет доступ к результату по заданному индексу. Это асинхронный метод. Если результат с заданным индексом еще не загружен, то он загрузится.

getResultCount()

Integer

Возвращает количество результатов текущего поискового запроса.

getSelectedIndex()

Integer

Returns индекс текущего выбранного элемента.

getSuggestString()

String

Возвращает строку, содержащую исправленный поисковый запрос, если была допущена опечатка.

isExpanded()

Boolean

Возвращает true, если панель с результатами поиска развернута, false - в противном случае.

isOpen()

Boolean

Возвращает true, если панель с результатами поиска открыта, false - в противном случае.

open()

control.SearchControl

Открывает панель с результатами поиска.

search(request)

util.Promise

Осуществляет поиск.

setParent(parent)

IChildOnMap

Устанавливает родительский объект.

Унаследован от IControl.

showPage(page)

util.Promise

Показывает страницу с результатами запроса по заданному индексу. Индексы страниц начинаются с 0.

showResult(index)

util.Promise

Отображает результат с заданным индексом.

Описание полей

state

{data.Manager} state
Состояние элемента управления. Имена полей, доступных через метод data.Manager.get:
  • results - массив, содержащий результаты поиска;
  • currentIndex - индекс текущего выбранного элемента;
  • pageNumber - текущая страница выдачи результатов;
  • found - общее количество найденных результатов;
  • request - текущий активный запрос;
  • suggest - исправленный запрос;
  • expanded - признак, свернут или развернут элемент управления;
  • opened - признак, показана ли панель выдачи результата.

Описание событий

close

Событие закрытия поисковой панели. Экземпляр класса Event.

collapse

Событие схлопывания поисковой панели. Экземпляр класса Event.

expand

Событие развертывания поисковой панели. Экземпляр класса Event.

load

Событие получения результатов поиска с сервера. Экземпляр класса Event.

open

Событие открытия поисковой панели. Экземпляр класса Event.

pagechange

Событие смены страницы с результатами поиска. Экземпляр класса Event.

resultselect

Событие выбора результата поиска. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • resultIndex - индекс выбранного результата.

resultshow

Событие показа выбранного результата поиска. Индекс выбранного результата можно получить через свойство события 'resultIndex'. Экземпляр класса Event.

submit

Событие отправления поискового запроса на сервер. Экземпляр класса Event.

Описание методов

close

Закрывает панель с результатами поиска.

Returns ссылку на себя.

collapse

Сворачивает панель с результатами поиска.

Returns ссылку на себя.

expand

Разворачивает панель с результатами поиска.

Returns ссылку на себя.

getCurrentPage

{Integer} getCurrentPage()

Returns индекс текущий страницы с результатами запроса. Индексы начинаются с 0.

getPageCount

{Integer} getPageCount()

Возвращает количество страниц результатов текущего поискового запроса.

Returns количество страниц.

getRequestString

{String} getRequestString()

Возвращает строку, содержащую текущий поисковый запрос.

Returns строка, содержащая текущий поисковый запрос.

getResult

{util.Promise} getResult(index)

Предоставляет доступ к результату по заданному индексу. Это асинхронный метод. Если результат с заданным индексом еще не загружен, то он загрузится.

Returns возвращает объект типа util.Promise.

Параметры:

Параметр Значение по умолчанию Описание
index *

Тип: Integer

Индекс результата, начинается с 0.

* Обязательный параметр/опция.

Пример:

searchControl.getResult(5).then(function (result) {
    alert(result.properties.get('name'));
});

getResultCount

{Integer} getResultCount()

Возвращает количество результатов текущего поискового запроса.

Returns количество результатов.

getSelectedIndex

{Integer} getSelectedIndex()

Returns индекс текущего выбранного элемента.

getSuggestString

{String} getSuggestString()

Возвращает строку, содержащую исправленный поисковый запрос, если была допущена опечатка.

Returns строка, содержащая исправленный поисковый запрос.

isExpanded

{Boolean} isExpanded()

Возвращает true, если панель с результатами поиска развернута, false - в противном случае.

Returns true если панель развернута.

isOpen

{Boolean} isOpen()

Возвращает true, если панель с результатами поиска открыта, false - в противном случае.

Returns true если панель развернута.

open

Открывает панель с результатами поиска.

Returns ссылку на себя.

showPage

{util.Promise} showPage(page)

Показывает страницу с результатами запроса по заданному индексу. Индексы страниц начинаются с 0.

Returns возвращает объект типа util.Promise.

Параметры:

Параметр Значение по умолчанию Описание
page *

Тип: Integer

Индекс страницы, которую нужно показать.

* Обязательный параметр/опция.

Пример:

searchControl.showPage(1).then(
     function (pageIndex) { alert('Показана страница ' + pageIndex); }
);

showResult

{util.Promise} showResult(index)

Отображает результат с заданным индексом.

Returns возвращает объект типа util.Promise.

Параметры:

Параметр Значение по умолчанию Описание
index *

Тип: Integer

Индекс результата, начинается с 0.

* Обязательный параметр/опция.