control.TrafficControl
Расширяет IControl, ICustomizable.
Панель управления пробками на карте.
Конструктор | Поля | События | Методы
Конструктор
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
state | — | Тип: Object Состояние контрола. |
state.providerKey | 'traffic#actual' | Тип: String Ключ провайдера пробок, показываемых на карте.
|
state.shown | false | Тип: Boolean Показаны ли данные по пробкам на карте. |
options | — | Тип: Object Опции контрола. |
options.layout | — | Тип: Function|String Макет элемента управления.
В конструктор макета передается объект, содержащий поля:
|
options.position | {top: 5, right: 120} | Тип: Object Положение элемента управления над картой.
Задается в виде объекта со следующими полями:
|
options.visible | true | Тип: Boolean Признак того, что элемент управления отображается. |
Параметр | Значение по умолчанию | Описание |
---|---|---|
state | — | Тип: Object Состояние контрола. |
state.providerKey | 'traffic#actual' | Тип: String Ключ провайдера пробок, показываемых на карте.
|
state.shown | false | Тип: Boolean Показаны ли данные по пробкам на карте. |
options | — | Тип: Object Опции контрола. |
options.layout | — | Тип: Function|String Макет элемента управления.
В конструктор макета передается объект, содержащий поля:
|
options.position | {top: 5, right: 120} | Тип: Object Положение элемента управления над картой.
Задается в виде объекта со следующими полями:
|
options.visible | true | Тип: Boolean Признак того, что элемент управления отображается. |
Примеры:
1.
// Пример 1.
// Добавление на карту элемента управления пробками
// с включенными пробками "сейчас".
var trafficControl = new ymaps.control.TrafficControl({shown: true});
map.controls.add(trafficControl, {top: 10, left: 10});
2.
// Пример 2.
// В примере используется jQuery, загруженный с http://yandex.st/jquery/1.6.4/jquery.min.js
// Добавление на карту пользовательской панели управления пробками.
var MyTrafficControlLayout = ymaps.templateLayoutFactory.createClass("<div id='traffic'>" +
"<div id='shown'>[if state.shown]hide[else]show[endif]</div>" +
"[if state.shown]" +
"<div id='now'>now</div>" +
"<div id='usually'>usually</div>" +
"[endif]" +
"</div>", {
build: function () {
// Вызываем родительский метод.
MyTrafficControlLayout.superclass.build.call(this);
// Запоминаем функции-обработчики, для которых закреплен контекст,
// чтобы потом от них отписаться.
this.actualCallback = ymaps.util.bind(this.setActualProvider, this);
this.archiveCallback = ymaps.util.bind(this.setArchiveProvider, this);
this.shownCallback = ymaps.util.bind(this.checkShown, this);
// Подписываемся на клики на элементах панели.
$('#shown').bind('click', this.shownCallback);
$('#now').bind('click', this.actualCallback);
$('#usually').bind('click', this.archiveCallback);
},
clear: function () {
// Отписываемся от событий на элементах панели.
$('#shown').unbind('click', this.shownCallback);
$('#now').unbind('click', this.actualCallback);
$('#usually').unbind('click', this.archiveCallback);
// Вызываем родительский метод.
MyTrafficControlLayout.superclass.clear.call(this);
},
setActualProvider: function () {
// Для смены провайдера инициируем событие, описанное в ITrafficControlLayout.
this.events.fire('providerkeychange', {newProviderKey: 'traffic#actual'});
},
setArchiveProvider: function () {
// Для смены провайдера инициируем событие, описанное в ITrafficControlLayout.
this.events.fire('providerkeychange', {newProviderKey: 'traffic#archive'});
},
checkShown: function () {
// Проверяем состояние элемента управления,
// и в зависимости от результата генерируем одно из событий
// интерфейса ITrafficControlLayout.
if (this.getData().state.get('shown')) {
this.events.fire('hide');
} else {
this.events.fire('show');
}
}
});
var trafficControl = new ymaps.control.TrafficControl({}, {layout: MyTrafficControlLayout});
Поля
Имя | Тип | Описание |
---|---|---|
data | data.Manager | Данные панели. |
events | IEventManager | Менеджер событий. Унаследовано от IEventEmitter. |
options | IOptionManager | Менеджер опций. Унаследовано от ICustomizable. |
state | data.Manager | Состояние панели.
Имена полей, доступных через метод data.Manager.get:
|
Имя | Тип | Описание |
---|---|---|
data | data.Manager | Данные панели. |
events | IEventManager | Менеджер событий. Унаследовано от IEventEmitter. |
options | IOptionManager | Менеджер опций. Унаследовано от ICustomizable. |
state | data.Manager | Состояние панели.
Имена полей, доступных через метод data.Manager.get:
|
События
Имя | Описание |
---|---|
collapse | Панель пробок свернута. Экземпляр класса Event. |
expand | Панель пробок развернута. Экземпляр класса Event. |
hide | Пробки скрыты. Экземпляр класса Event. |
mapchange | Сменилась карта.
Поля данных:
Унаследовано от IChildOnMap. |
optionschange | Изменение в опциях объекта. Унаследовано от ICustomizable. |
parentchange | Сменился родительский объект. Поля данных:
Унаследовано от IChild. |
providerkeychange | Сменился ключ провайдера.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
|
show | Показаны пробки. Экземпляр класса Event. |
Имя | Описание |
---|---|
collapse | Панель пробок свернута. Экземпляр класса Event. |
expand | Панель пробок развернута. Экземпляр класса Event. |
hide | Пробки скрыты. Экземпляр класса Event. |
mapchange | Сменилась карта.
Поля данных:
Унаследовано от IChildOnMap. |
optionschange | Изменение в опциях объекта. Унаследовано от ICustomizable. |
parentchange | Сменился родительский объект. Поля данных:
Унаследовано от IChild. |
providerkeychange | Сменился ключ провайдера.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
|
show | Показаны пробки. Экземпляр класса Event. |
Методы
Имя | Возвращает | Описание |
---|---|---|
collapse() | Свернуть панель пробок. | |
expand() | Развернуть панель пробок. | |
getParent() | Returns ссылку на родительский объект. Унаследован от IControl. | |
getProvider([key]) | Returns экземпляр провайдера пробок. | |
hide() | Скрыть провайдер пробок с карты. | |
isExpanded() | Boolean | Returns признак, развернута ли панель. |
isShown() | Boolean | Returns признак, показан ли провайдер пробок на карте. |
setParent(parent) | Устанавливает родительский объект. Унаследован от IControl. | |
show() | Показать провайдер пробок на карте. |
Имя | Возвращает | Описание |
---|---|---|
collapse() | Свернуть панель пробок. | |
expand() | Развернуть панель пробок. | |
getParent() | Returns ссылку на родительский объект. Унаследован от IControl. | |
getProvider([key]) | Returns экземпляр провайдера пробок. | |
hide() | Скрыть провайдер пробок с карты. | |
isExpanded() | Boolean | Returns признак, развернута ли панель. |
isShown() | Boolean | Returns признак, показан ли провайдер пробок на карте. |
setParent(parent) | Устанавливает родительский объект. Унаследован от IControl. | |
show() | Показать провайдер пробок на карте. |
Описание полей
data
{data.Manager} data
Данные панели.
state
{data.Manager} state
- shown - признак, показан ли на карте провайдер пробок;
- providerKey - ключ провайдера, который показывает панель. Может принимать значения 'traffic#actual' или 'traffic#archive';
- expanded - признак, развернута ли панель.
Описание событий
collapse
Панель пробок свернута. Экземпляр класса Event.
expand
Панель пробок развернута. Экземпляр класса Event.
hide
Пробки скрыты. Экземпляр класса Event.
providerkeychange
- newProviderKey - новое значение ключа провайдера;
- oldProviderKey - старое значение ключа.
show
Показаны пробки. Экземпляр класса Event.
Описание методов
collapse
{} collapse()
Свернуть панель пробок.
expand
{} expand()
Развернуть панель пробок.
getProvider
{ITrafficProvider} getProvider([key])
Returns экземпляр провайдера пробок.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
key | — | Тип: String Ключ провайдера информации о пробках.
Список доступных ключей:
|
Параметр | Значение по умолчанию | Описание |
---|---|---|
key | — | Тип: String Ключ провайдера информации о пробках.
Список доступных ключей:
|
Пример:
// Добавим на карту контрол пробок.
map.controls.add('trafficControl');
// Провайдер пробок "сейчас" при открытии будет показывать слой дорожных событий.
map.controls.get('trafficControl').getProvider('traffic#actual').state.set('infoLayerShown', true);
hide
{} hide()
Скрыть провайдер пробок с карты.
isExpanded
{Boolean} isExpanded()
Returns признак, развернута ли панель.
isShown
{Boolean} isShown()
Returns признак, показан ли провайдер пробок на карте.
show
{} show()
Показать провайдер пробок на карте.