Элементы управления
- Стандартные элементы управления
- Пользовательские элементы управления
- Составные элементы управления и группировка
Элемент управления — визуальный объект, связанный с картой и предназначенный для взаимодействия с пользователем. В большинстве случаев элементы управления размещаются в области показа карты.
API карт включает в себя набор встроенных элементов управления (выбор типа карты, ползунок изменения масштаба и пр.) и предоставляет возможность определения собственных.
Компоненты, предназначенные для создания элементов управления, реализованы в виде классов, находящихся в пространстве имен control
(например, control.Button).
Элементы управления программно связаны с объектом карты и хранятся в виде коллекции, ссылка на которую содержится в поле controls.
Существует специальное хранилище, позволяющее поставить конструктору класса элемента управления в соответствие строковый ключ. Для добавления и удаления элементов управления карты можно указывать как ссылки на экземпляр элемента управления, так и ключ из этого хранилища.
|
|
Стандартные элементы управления
Элемент управления | Описание |
---|---|
Стандартный набор кнопок | Панель инструментов со стандартным набором кнопок: перетягивание карты (drag), увеличение выделенной области, измерение расстояний. Пример Добавление на карту панели инструментов со стандартным набором кнопок:
или
|
Редактор маршрута. Пример Добавление на карту редактора маршрута:
или | |
Выбор типа карты | Переключатель отображаемого типа карты. Пример Добавление на карту переключателя типа карты (в выпадающем списке будут отображены все допустимые типы):
Добавление на карту переключателя типа карты (в выпадающем списке будут отображены только указанные типы):
|
Ползунок масштаба | Изменение коэффициента масштабирования. Две кнопки для увеличения/уменьшения коэффициента масштабирования на единицу и ползунок масштаба. Пример Добавление на карту панели изменения масштаба: или |
Кнопки изменения масштаба | Изменение коэффициента масштабирования — компактный вариант. Две кнопки, одна из которых увеличивает коэффициент масштабирования на единицу, вторая — уменьшает на единицу. Пример Добавление на карту кнопок изменения масштаба: или |
Масштабная линейка | Отображает на карте масштабный отрезок и показывает его длину в используемых географических единицах измерениях. Позволяет визуально оценить расстояние между объектами. Пример Добавление на карту масштабной линейки: или |
Обзорная карта | Уменьшенная карта местности, коэффициент масштаб которой на заданное количество единиц меньше основного. Тип обзорной карты может отличаться от типа основной карты. Пример Добавление обзорной карты: Добавление обзорной карты с заданными параметрами: |
Поиск по карте | Поиск географических объектов по названию, адресу или географическим координатам. Пример Добавление на карту поисковой строки: Добавление на карту поисковой строки с заданными параметрами: |
Пробки | Отображение пробок на карте. Позволяет включать/отключать отображение на карте слоя пробок. Пример Добавление на карту элемента управления «Пробки»: Добавление на карту элемента управления «Пробки» с указанным источником пробок (будут показаны пробки «обычно»): |
Элемент управления | Описание |
---|---|
Стандартный набор кнопок | Панель инструментов со стандартным набором кнопок: перетягивание карты (drag), увеличение выделенной области, измерение расстояний. Пример Добавление на карту панели инструментов со стандартным набором кнопок:
или
|
Редактор маршрута. Пример Добавление на карту редактора маршрута:
или | |
Выбор типа карты | Переключатель отображаемого типа карты. Пример Добавление на карту переключателя типа карты (в выпадающем списке будут отображены все допустимые типы):
Добавление на карту переключателя типа карты (в выпадающем списке будут отображены только указанные типы):
|
Ползунок масштаба | Изменение коэффициента масштабирования. Две кнопки для увеличения/уменьшения коэффициента масштабирования на единицу и ползунок масштаба. Пример Добавление на карту панели изменения масштаба: или |
Кнопки изменения масштаба | Изменение коэффициента масштабирования — компактный вариант. Две кнопки, одна из которых увеличивает коэффициент масштабирования на единицу, вторая — уменьшает на единицу. Пример Добавление на карту кнопок изменения масштаба: или |
Масштабная линейка | Отображает на карте масштабный отрезок и показывает его длину в используемых географических единицах измерениях. Позволяет визуально оценить расстояние между объектами. Пример Добавление на карту масштабной линейки: или |
Обзорная карта | Уменьшенная карта местности, коэффициент масштаб которой на заданное количество единиц меньше основного. Тип обзорной карты может отличаться от типа основной карты. Пример Добавление обзорной карты: Добавление обзорной карты с заданными параметрами: |
Поиск по карте | Поиск географических объектов по названию, адресу или географическим координатам. Пример Добавление на карту поисковой строки: Добавление на карту поисковой строки с заданными параметрами: |
Пробки | Отображение пробок на карте. Позволяет включать/отключать отображение на карте слоя пробок. Пример Добавление на карту элемента управления «Пробки»: Добавление на карту элемента управления «Пробки» с указанным источником пробок (будут показаны пробки «обычно»): |
Пользовательские элементы управления
API предоставляет возможность создания собственных элементов управления, позволяющих выполнить произвольные действия.
Наиболее часто элементы управления реализуются в виде кнопок. Для создания кнопочного элемента управления предназначен класс control.Button.
Поддерживается два типа реакций на нажатие кнопки: после нажатия кнопка остается нажатой (поведение по умолчанию) или возвращается в исходное состояние. Тип реакции на нажатие задается опцией selectOnClick
(true/false).
| |
| |
Класс control.Button реализует элемент управления, для которого установлен стандартный внешний вид, реакция на нажатие и методы, позволяющие задать и определить текущее состояние. Кнопка может быть включена в любой составной элемент управления.
Для определения собственных элементов управления предназначен интерфейс IControl. Для элементов управления, которые могут находиться в только в двух состояниях удобно использовать интерфейс ISelectableControl, расширяющий IControl.
Составные элементы управления и группировка
API Яндекс.Карт включает в себя набор компонентов, позволяющих создавать составные элементы управления, визуально объединяя включенные в них элементы.
Список классов для создания составных элементов приведен в таблице.
Элемент управления | Описание |
---|---|
Горизонтальная панель | Панель инструментов, элементы которых расположены горизонтально. Чаще всего на горизонтальной панели размещаются кнопки. Классы: control.ToolBar — контейнер элементов; control.ToolBarSeparator — разделитель элементов панели. Пример |
Панель переключаемых элементов | Панель элементов, каждый из которых может находиться только в двух состояниях (ISelectableControl). Класс control.RadioGroup. Пример |
Раскрывающаяся панель | Панель элементов, вертикально раскрывающаяся при наведении курсора на первый элемент. Класс control.RollupButton. Пример |
Выпадающий список | Выпадающий список. Классы: control.ListBox — контейнер элементов; control.ListBoxItem — элемент списка; control.ListBoxSeparator — разделитель элементов списка. Пример |
Элемент управления | Описание |
---|---|
Горизонтальная панель | Панель инструментов, элементы которых расположены горизонтально. Чаще всего на горизонтальной панели размещаются кнопки. Классы: control.ToolBar — контейнер элементов; control.ToolBarSeparator — разделитель элементов панели. Пример |
Панель переключаемых элементов | Панель элементов, каждый из которых может находиться только в двух состояниях (ISelectableControl). Класс control.RadioGroup. Пример |
Раскрывающаяся панель | Панель элементов, вертикально раскрывающаяся при наведении курсора на первый элемент. Класс control.RollupButton. Пример |
Выпадающий список | Выпадающий список. Классы: control.ListBox — контейнер элементов; control.ListBoxItem — элемент списка; control.ListBoxSeparator — разделитель элементов списка. Пример |
var myControlGroup = new ymaps.control.Group({
items: [
new ymaps.control.Button('Первый'),
new ymaps.control.Button('Второй'),
new ymaps.control.Button('Расчет окончен')
]
}, {selectOnClick: false});
myControlGroup.events.add(['click'], function (e) {
alert(e.get('target').data.get('content'));
});