control.TypeSelector

Расширяет control.ListBox.

Элемент управления "Типы карты". В данный элемент управления можно добавлять элементы списка, которые описывают типы карты, а также дополнительные элементы. Элементы, описывающие типы карты, объединены в группу control.Group. Группа по умолчанию добавлена первым элементом. Доступ к этой группе можно получить через метод getMapTypeItemsGroup.

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

Конструктор

control.TypeSelector([params[, options[, fixTitle]]])

Параметры:

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

Тип: String[]|MapType[]|Object

Объект с описаниями параметров элемента управления. Если передан массив, то он трактуется как массив типов карты.

params.data.title

Тип: String

Заголовок списка.

params.mapTypes

Тип: String[]|MapType[]

Массив конструкторов типов карты или ключей. Список доступных типов карты:
  • 'yandex#map' - тип карты "схема";
  • 'yandex#satellite' - тип карты "спутник";
  • 'yandex#hybrid' - тип карты "гибрид".
param.data

Тип: Object

Данные списка.

options

Тип: Object

Опции элемента управления.

options.position { top: 5, right: 5 }

Тип: Object

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

Тип: Boolean

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

fixTitle false

Тип: Boolean

Флаг, отвечающий за поведение заголовка элемента управления.
  • true - заголовок элемента управления не изменяется при смене типа карты;
  • false - заголовок элемента управления изменяется в соответствии с выбранным типом карты. Если тип карты не выбран, будет отображаться значение, заданное в params.data.title.

Пример:

map.controls.add(new ymaps.control.TypeSelector(['yandex#map', 'yandex#hybrid']));

Поля

Имя Тип Описание
data data.Manager
Данные элемента управления. Имена полей, доступных через метод data.Manager.get:
  • title - заголовок выпадающего списка.
events IEventManager

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

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

options IOptionManager

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

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

state data.Manager
Состояние выпадающего списка. Имена полей, доступных через метод data.Manager.get:
  • expanded - признак, раскрыт ли список.

Унаследовано от control.ListBox.

События

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

Произошло добавление дочернего объекта.

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

childcontainerchange
Изменение дом-элемента, в который добавляются дочерние элементы группы. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • newChildContainerElement - новый дом-элемент для дочерних элементов;
  • oldChildContainerElement - старый элемент для дочерних элементов.

Унаследовано от control.Group.

click

Щелчок по заголовку списка. Экземпляр класса Event.

Унаследовано от control.ListBox.

collapse

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

Унаследовано от control.ListBox.

expand

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

Унаследовано от control.ListBox.

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

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

optionschange

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

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

parentchange

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

Поля данных:

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

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

remove

Произошло удаление дочернего объекта.

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

Методы

Имя Возвращает Описание
add(item[, positionIndex])

control.Group

Добавляет элемент управления в группу. Элемент можно добавлять, передав экземпляр класса, реализующего интерфейс IControl, или по ключу.

Возожные значения ключей:

Унаследован от control.Group.

addMapType(mapType[, position])

TypeSelector

Добавляет тип карты в список.

collapse()

Сворачивает список.

Унаследован от control.ListBox.

each(callback[, context])

control.Group

Перебирает все элементы коллекции, вызывая для каждого функцию-обработчик.

Унаследован от control.Group.

expand()

Раскрывает список.

Унаследован от control.ListBox.

filter(callback)

IChildOnMap[]

Функция для выборки дочерних элементов по условию.

Унаследован от control.Group.

get()

IChildOnMap

Returns ссылку на объект контрола, добавленного по ключу или по индексу.

Унаследован от control.Group.

getAll()

IChildOnMap[]

Returns массив дочерних элементов контрола.

Унаследован от control.Group.

getChildElement(child)

HTMLElement

Возвращает для своего дочернего объекта HTML-элемент, в котором он должен размещаться.

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

getContainer()

HTMLElement

Returns контейнер, в который добавляются дочерние элементы контрола.

Унаследован от control.Group.

getIterator()

IIterator

Returns итератор по коллекции.

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

getLength()

Number

Returns количество дочерних элементов.

Унаследован от control.Group.

getMap()

Map

Returns ссылку на карту.

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

getMapTypeItemsGroup()

control.Group

Returns группу, которая содержит элементы списка, описывающие типы карты.

getParent()

IControlParent

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

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

indexOf(childToFind)

Integer

Returns индекс дочернего элемента в группе.

Унаследован от control.Group.

isExpanded()

Boolean

Returns признак того, находится ли контрол в развернутом состоянии.

Унаследован от control.ListBox.

remove(item)

control.Group

Удаляет элемент управления из группы.

Унаследован от control.Group.

removeAll()

control.Group

Удаляет все дочерние элементы из группы.

Унаследован от control.Group.

removeAllMapTypes()

TypeSelector

Удаляет все типы карты из элемента управления.

removeMapType()

TypeSelector

Удаляет тип карты.

setMinWidth(width)

Устанавливает ширину списка.

Унаследован от control.ListBox.

setParent(parent)

IChildOnMap

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

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

setTitle(html)

Задает новый заголовок раскрывающегося списка.

Унаследован от control.ListBox.

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

data

Данные элемента управления. Имена полей, доступных через метод data.Manager.get:
  • title - заголовок выпадающего списка.

Пример:

// Добавим на карту выпадающий список и будем менять его заголовок
// в зависимости от того, свернут список или развернут.
var typeSelector = new ymaps.control.TypeSelector();
// Зададим опцию, запрещающую менять заголовок списка.
typeSelector.options.set('fixTitle', true);
// Создадим группу слушателей событий.
var typeSelectorListener = typeSelector.events.group()
    .add('expand', function () {
        typeSelector.data.set('title', 'Список развернут');   
    })
    .add('collapse', function () {
        typeSelector.data.set('title', 'Список свернут');
    });
map.controls.add(typeSelector, {top: 10, left: 10});
// ...
map.controls.remove(typeSelector);
// После удаления элемента с карты удалим слушателей.
typeSelectorListener.removeAll();

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

addMapType

{TypeSelector} addMapType(mapType[, position])

Добавляет тип карты в список.

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

Параметры:

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

Тип: String|MapType

Тип карты.

position

Тип: Integer

Позиция в списке (если не указана, новый тип карты добавляется в конец списка).

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

Пример:

var typeSelector = new ymaps.control.TypeSelector();
typeSelector.addMapType('yandex#map', 1);
typeSelector.addMapType('yandex#hybrid', 0);

getMapTypeItemsGroup

{control.Group} getMapTypeItemsGroup()

Returns группу, которая содержит элементы списка, описывающие типы карты.

removeAllMapTypes

{TypeSelector} removeAllMapTypes()

Удаляет все типы карты из элемента управления.

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

removeMapType

{TypeSelector} removeMapType()

Удаляет тип карты.

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

Параметры:

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

Тип: String|MapType

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