traffic.provider.Archive
Расширяет ITrafficProvider.
Провайдер архива пробок. Позволяет показывать состояние пробок, типичное для данного региона в конкретный день недели и конкретное время суток.
Конструктор | Поля | События | Методы
Конструктор
Создает экземпляр провайдера архива пробок.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
options | — | Тип: Object Опции провайдера. Опции для слоев провайдера задаются через
опции глобальной коллекции слоев Map.layers.
|
options.showCurrentTimeFirst | true | Тип: Boolean При первом показе архивных данных выставить время, близкое к текущему. |
state | — | Тип: Object Состояние провайдера. |
state.timestamp | — | Тип: Number Время, для которого показываются пробки "обычно". Это время, прошедшее с 00:00 понедельника до требуемого времени в секундах. Должно быть кратно 60 * 15 = 900, так как данные на сервере доступны для моментов времени с разницей в 15 минут. Время задается для нулевого часового пояса (UTC+0). |
Параметр | Значение по умолчанию | Описание |
---|---|---|
options | — | Тип: Object Опции провайдера. Опции для слоев провайдера задаются через
опции глобальной коллекции слоев Map.layers.
|
options.showCurrentTimeFirst | true | Тип: Boolean При первом показе архивных данных выставить время, близкое к текущему. |
state | — | Тип: Object Состояние провайдера. |
state.timestamp | — | Тип: Number Время, для которого показываются пробки "обычно". Это время, прошедшее с 00:00 понедельника до требуемого времени в секундах. Должно быть кратно 60 * 15 = 900, так как данные на сервере доступны для моментов времени с разницей в 15 минут. Время задается для нулевого часового пояса (UTC+0). |
Пример:
// Создадим провайдер пробок "обычно" и зададим ему timestamp для 17:47 среды
// в нулевом часовом поясе. Обратите внимание, что местное время будет зависеть
// от расположения центра карты.
// К примеру, 17:47 в нулевом часовом поясе будет соответствовать 21:47 в Москве.
// Вычислим значение параметра timestamp для требуемого времени.
var timestamp = 2 * 24 * 60 * 60 + // дважды по 24 часа - это время за понедельник и вторник
17 * 60 * 60 + // 17 часов прошло с 00:00 среды
45 * 60, // поскольку время должно быть кратно 15 минутам, берем не 47 минут, а 45.
archiveProvider = new ymaps.traffic.provider.Archive({
// Запретим при первом открытии выставлять время, близкое к текущему
showCurrentTimeFirst: false
}, {
// Зададим начальное время самостоятельно.
timestamp: timestamp
});
archiveProvider.setMap(map);
// Запретим показ балунов по клику для слоев пробок.
myMap.layers.options.set({
// Название опции сформировано из опции хотспотного слоя
// 'openBalloonOnClick' путем добавления префикса 'trafficJam'.
trafficJamOpenBalloonOnClick: false
});
// ...
// Удаление провайдера с карты.
archiveProvider.setMap(null);
Поля
Имя | Тип | Описание |
---|---|---|
events | IEventManager | Менеджер событий. Унаследовано от IEventEmitter. |
options | IOptionManager | Менеджер опций. Унаследовано от ICustomizable. |
state | data.Manager | Состояние провайдера.
Имена полей, доступных через метод data.Manager.get:
|
Имя | Тип | Описание |
---|---|---|
events | IEventManager | Менеджер событий. Унаследовано от IEventEmitter. |
options | IOptionManager | Менеджер опций. Унаследовано от ICustomizable. |
state | data.Manager | Состояние провайдера.
Имена полей, доступных через метод data.Manager.get:
|
События
Имя | Описание |
---|---|
optionschange | Изменение в опциях объекта. Унаследовано от ICustomizable. |
Имя | Описание |
---|---|
optionschange | Изменение в опциях объекта. Унаследовано от ICustomizable. |
Методы
Имя | Возвращает | Описание |
---|---|---|
getMap() | Map|null | Returns ссылку на карту. Унаследован от ITrafficProvider. |
getTime() | Object|null | Возвращает день недели, часы и минуты состояния провайдера с учетом часового пояса и перехода на зимнее/летнее время. То есть то время, которое пользователь видит в элементе управления пробками. |
setMap(map) | Устанавливает карту. Унаследован от ITrafficProvider. | |
setTime(time[, callback]) | Позволяет задавать время для архивного провайдера в минутах, часах и днях недели.
Выставляет локальное время только после того, как провайдер инициализирует поля timeZone и dst.
|
Имя | Возвращает | Описание |
---|---|---|
getMap() | Map|null | Returns ссылку на карту. Унаследован от ITrafficProvider. |
getTime() | Object|null | Возвращает день недели, часы и минуты состояния провайдера с учетом часового пояса и перехода на зимнее/летнее время. То есть то время, которое пользователь видит в элементе управления пробками. |
setMap(map) | Устанавливает карту. Унаследован от ITrafficProvider. | |
setTime(time[, callback]) | Позволяет задавать время для архивного провайдера в минутах, часах и днях недели.
Выставляет локальное время только после того, как провайдер инициализирует поля timeZone и dst.
|
Описание полей
state
{data.Manager} state
- isInited - признак, готов ли провайдер предоставлять данные;
- timeZone - смещение по времени для текущего временного пояса относительно UTC+0. Измеряется в секундах.;
- dst - признак перехода на зимнее/летнее время. При dst='dst' время летнее;
- timestamp - текущее время во временной зоне UTC+0 в секундах;
- localtime - локальное время, которое возвращает в ответе сервер;
- level - уровень загруженности дорог в баллах - от 0 до 10.
Пример:
var archiveProvider = new ymaps.traffic.provider.Archive();
archiveProvider.setMap(myMap);
archiveProvider.state.events.add('change', function () {
if (archiveProvider.state.get('isInited')) {
alert('Провайдер готов предоставлять данные.');
}
});
Описание методов
getTime
{Object|null} getTime()
Возвращает день недели, часы и минуты состояния провайдера с учетом часового пояса и перехода на зимнее/летнее время. То есть то время, которое пользователь видит в элементе управления пробками.
- dayOfWeek - Сокращенное название дня недели. 'mon', 'tue', 'wen', 'thu', 'fri', 'sat', 'sun';
- hours - часы;
- minutes - минуты.
setTime
- timeZone - поле, которое показывает, в каком часовом поясе на данный момент находится центр карты. При перемещении центра карты из одного часового пояса в другой локальное время может изменяться.
- dst - признак перехода на летнее/зимнее время. При dst='dst' время летнее.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
time * | — | Тип: Object Объект с задаваемыми параметрами. |
time.dayOfWeek | — | Тип: String Сокращенное название дня недели. 'mon', 'tue', 'wen', 'thu', 'fri', 'sat', 'sun'. |
time.hours | — | Тип: Number Часы. |
time.minutes | — | Тип: Number Минуты. |
callback | — | Тип: Function Функция, которая вызывается после того, как было выставлено время. Принимает на вход хэш с выставленными данными. |
Параметр | Значение по умолчанию | Описание |
---|---|---|
time * | — | Тип: Object Объект с задаваемыми параметрами. |
time.dayOfWeek | — | Тип: String Сокращенное название дня недели. 'mon', 'tue', 'wen', 'thu', 'fri', 'sat', 'sun'. |
time.hours | — | Тип: Number Часы. |
time.minutes | — | Тип: Number Минуты. |
callback | — | Тип: Function Функция, которая вызывается после того, как было выставлено время. Принимает на вход хэш с выставленными данными. |
* Обязательный параметр/опция.
Пример:
// Создадим элемент управления, который сразу показывает на карте
// провайдер пробок "обычно".
var trafficControl = new ymaps.control.TrafficControl({
shown: true,
providerKey: 'traffic#archive'
});
map.controls.add(trafficControl);
// Как только провайдер получит данные о текущей временной зоне,
// будет выставлено локальное время.
trafficControl.getProvider('traffic#archive').setTime({
dayOfWeek: 'fri',
hours: 9,
minutes: 15
}, function (time) {
alert('Локальное время ' + time.hours + ':' + time.minutes + ' выставлено!');
});