control.SearchControl

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

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

Конструктор

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

{control.SearchControl} close()

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

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

collapse

{control.SearchControl} collapse()

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

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

expand

{control.SearchControl} 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

{control.SearchControl} open()

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

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

{util.Promise} search(request)

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

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

Параметры:

Параметр

Значение по умолчанию

Описание

request*

Тип: String

Запрос.

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

Пример:

searchControl.search('Москва').then(function (geoObjectsArr) {

    // geoObjectsArr - это массив геообъектов, содержащий результаты запроса.

     // выводит свойство name первого геообъекта из результатов запроса
    alert(geoObjectsArr[0].properties.get('name'));

});

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.

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

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

Предыдущая
Следующая