multiRouter.MultiRoute
Расширяет IGeoObject.
Мультимаршрут на карте. Позволяет отображать на карте маршрут и несколько альтернатив к нему. Предоставляет интерфейс выбора активного маршрута.
Конструктор | Поля | События | Методы
Конструктор
multiRouter.MultiRoute(model[, options])
Создает мультимаршрут на карте.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
— |
Тип: multiRouter.MultiRouteModel|IMultiRouteModelJson Модель данных мультимаршрута, либо объект описания модели. В случае передачи объекта описания, модель на его основе создается автоматически. |
|
— |
Тип: Object Опции мультимаршрута. Для задания опций составных частей маршрутов доступны следующие префиксы:
|
|
true |
Тип: Boolean После обновления данных автоматически выбирать в качестве активного маршрут с минимальным временем проезда. |
|
false |
Тип: Boolean При добавлении мультимаршрута на карту позволяет автоматически установить центр и коэффициент масштабирования так, чтобы мультимаршрут был виден целиком. |
|
— |
Тип: String|Number Величина временного интервала перестроения маршрута при перетаскивании опорных точек. Может быть задана в миллисекундах, либо оптимальное значение будет рассчитываться автоматически. Значение данной опции транслируется в параметр IMultiRouteParams.requestSendInterval модели мультимаршрута. |
|
false |
Тип: Boolean Позволяет отключить обновление маршрута во время перетаскивания опорных точек. |
|
true |
Тип: Boolean Нужно ли учитывать отступы карты map.margin.Manager. |
|
0 |
Тип: Number|Number[] Отступы от границ видимой области карты при изменении коэффициента масштабирования. Если задано одно число - оно применяется ко всем сторонам. Если задано два - то это горизонтальные и вертикальные отступы соответственно. Если задан массив из 4х чисел, то это отступы top, right, bottom, left. При включенной опции "useMapMargin" значение "zoomMargin" складывается со значениями, которые были рассчитаны в менеджере отступов map.margin.Manager. |
* Обязательный параметр/опция.
Примеры:
1.
// Создадим мульти-маршрут и добавим его на карту.
var multiRoute = new ymaps.multiRouter.MultiRoute({
referencePoints: ['Москва, Ленинский проспект", "Москва, Кулаков переулок'],
}, {
editorDrawOver: false,
wayPointDraggable: true,
viaPointDraggable: true,
// Зададим собственное оформление линий мультимаршрута.
routeStrokeColor: "000088",
routeActiveStrokeColor: "ff0000",
pinIconFillColor: "ff0000",
boundsAutoApply: true,
zoomMargin: 30
});
myMap.geoObjects.add(multiRoute);
2.
// Создадим мультимаршрут и добавим его на карту.
var multiRoute = new ymaps.multiRouter.MultiRoute({
referencePoints: ['Москва, Ленинский проспект', 'Москва, Кулаков переулок', 'Зеленоград'],
});
myMap.geoObjects.add(multiRoute);
// Once multi-route is loaded.
multiRoute.events.once('update', function () {
// Установим первый маршрут, у которого нет перекрытых
// участков, в качестве активного. Откроем его балун.
var routes = multiRoute.getRoutes();
for (var i = 0, l = routes.getLength(); i < l; i++) {
var route = routes.get(i);
if (!route.properties.get('blocked')) {
multiRoute.setActiveRoute(route);
route.balloon.open();
break;
}
}
});
Поля
Имя |
Тип |
Описание |
Редактор мультимаршрута. |
||
Менеджер событий. Унаследовано от IDomEventEmitter. |
||
IGeometry|null |
Геометрия геообъекта. Унаследовано от IGeoObject. |
|
Модель данных мультимаршрута. |
||
Менеджер опций. Унаследовано от ICustomizable. |
||
Данные геообъекта. Унаследовано от IGeoObject. |
||
Состояние геообъекта. Унаследовано от IGeoObject. |
События
Имя |
Описание |
Изменение активного маршрута. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
|
|
Закрытие балуна. Имена полей, доступных через метод Event.get:
|
|
Открытие балуна. Имена полей, доступных через метод Event.get:
|
|
Событие возникает в момент установки центра и коэффициента масштабирования карты для оптимального отображения мультимаршрута. Также смотрите описание опции boundsAutoApply. Экземпляр класса Event. |
|
Изменение координат географической области, охватывающей мультимаршрут. Экземпляр класса Event. |
|
Однократное нажатие левой кнопки мыши на объекте. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Экземпляр класса MapEvent. Более детальное описание доступно в domEvent.manager. Унаследовано от IDomEventEmitter. |
|
Вызов контекстного меню на элементе. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Экземпляр класса MapEvent. Более детальное описание доступно в domEvent.manager. Унаследовано от IDomEventEmitter. |
|
Двойное нажатие левой кнопки мыши на объекте. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Экземпляр класса MapEvent. Более детальное описание доступно в domEvent.manager. Унаследовано от IDomEventEmitter. |
|
Изменение геометрии геообъекта. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
Унаследовано от IGeoObject. |
|
Сменилась карта. Поля данных:
Унаследовано от IParentOnMap. |
|
Нажатие кнопки мыши над объектом. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Экземпляр класса MapEvent. Более детальное описание доступно в domEvent.manager. Унаследовано от IDomEventEmitter. |
|
Наведение курсора на объект. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Экземпляр класса MapEvent. Более детальное описание доступно в domEvent.manager. Унаследовано от IDomEventEmitter. |
|
Вывод курсора за пределы объекта. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Экземпляр класса MapEvent. Более детальное описание доступно в domEvent.manager. Унаследовано от IDomEventEmitter. |
|
Перемещение курсора над объектом. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Экземпляр класса MapEvent. Более детальное описание доступно в domEvent.manager. Унаследовано от IDomEventEmitter. |
|
Отпускание кнопки мыши над объектом. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Экземпляр класса MapEvent. Более детальное описание доступно в domEvent.manager. Унаследовано от IDomEventEmitter. |
|
Окончание мультисенсорного управления. Данное событие доступно только на устройствах, которые поддерживают множественные сенсорные прикосновения. Возвращает реализацию интерфейса IMultiTouchEvent. Унаследовано от IDomEventEmitter. |
|
Повторящееся событие при мультисенсорном управлении. Данное событие доступно только на устройствах, которые поддерживают множественные сенсорные прикосновения. Возвращает реализацию интерфейса IMultiTouchEvent c информацией о прикосновениях. Определяет свойство touches, которое содержит список прикосновений. Каждое прикосновение описано объектом, которое содержит поля:
Унаследовано от IDomEventEmitter. |
|
Начало мультисенсорного управления. Данное событие доступно только на устройствах, которые поддерживают множественные сенсорные прикосновения. Возвращает реализацию интерфейса IMultiTouchEvent c информацией о прикосновениях. Определяет свойство touches, которое содержит список прикосновений. Каждое прикосновение описано объектом, которое содержит поля:
Унаследовано от IDomEventEmitter. |
|
Изменение в опциях объекта. Унаследовано от ICustomizable. |
|
Изменение оверлея геообъекта. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
Унаследовано от IGeoObject. |
|
Сменился родительский объект. Поля данных:
Унаследовано от IChild. |
|
Изменение пиксельных координат области, охватывающей мультимаршрут. Экземпляр класса Event. |
|
Изменение данных геообъекта. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
Унаследовано от IGeoObject. |
|
Обновление мультимаршрута. Экземпляр класса Event. |
|
Скролл мышкой. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Экземпляр класса MapEvent. Более детальное описание доступно в domEvent.manager. Унаследовано от IDomEventEmitter. |
Методы
Имя |
Возвращает |
Описание |
multiRouter.driving.Route|multiRouter.masstransit.Route|null |
Возвращает активный маршрут. |
|
Number[][]|null |
Возвращает географические координаты области, охватывающей мультимаршрут. |
|
getMap() |
Возвращает ссылку на карту. Унаследован от IParentOnMap. |
|
Возвращает объект-обещание, который подтверждается объектом оверлея в момент его фактического создания, либо отклоняется с передачей соответствующей ошибки. Унаследован от IGeoObject. |
||
IOverlay|null |
Метод предоставляет синхронный доступ к оверлею. Унаследован от IGeoObject. |
|
IParentOnMap|null |
Возвращает ссылку на родительский объект или null, если родительский элемент не был установлен. Унаследован от IChildOnMap. |
|
Number[][]|null |
Возвращает глобальные пиксельные координаты области, охватывающей мультимаршрут. |
|
Возвращает дочернюю коллекцию единичных маршрутов мультимаршрута. |
||
Возвращает дочернюю коллекцию транзитных точек мультимаршрута. |
||
Возвращает дочернюю коллекцию путевых точек мультимаршрута. |
||
Устанавливает активный маршрут. При этом предыдущий активный маршрут деактивируется, и генерируется событие multiRouter.MultiRoute.activeroutechange. |
||
Устанавливает родительский объект. Если передать значение null, то элемент управления будет только удален из текущего родительского объекта. Унаследован от IChildOnMap. |
Описание полей
editor
{multiRouter.EditorAddon} editor
Редактор мультимаршрута.
Пример:
// Начало редактирования маршрута.
ymaps.route(['Москва', 'Питер'], { multiRoute: true })
.done(function (multiRoute) {
myMap.geoObjects.add(multiRoute);
multiRoute.editor.start({
addWayPoints: true,
removeWayPoints: true
});
// ...
// Завершение редактирования маршрута.
route.editor.stop();
});
model
{multiRouter.MultiRouteModel} model
Модель данных мультимаршрута.
Описание событий
activeroutechange
Изменение активного маршрута. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
- oldActiveRoute: multiRouter.driving.Route|multiRouter.masstransit.Route|null - предыдущий активный маршрут.
balloonclose
Закрытие балуна. Имена полей, доступных через метод Event.get:
- originalTarget: multiRouter.pedestrian.Route|multiRouter.driving.Route|multiRouter.masstransit.Route|null - маршрут, балун которого был закрыт.
balloonopen
Открытие балуна. Имена полей, доступных через метод Event.get:
- originalTarget: multiRouter.pedestrian.Route|multiRouter.driving.Route|multiRouter.masstransit.Route|null - маршрут, на котором был открыт балун.
boundsautoapply
Событие возникает в момент установки центра и коэффициента масштабирования карты для оптимального отображения мультимаршрута. Также смотрите описание опции boundsAutoApply. Экземпляр класса Event.
boundschange
Изменение координат географической области, охватывающей мультимаршрут. Экземпляр класса Event.
pixelboundschange
Изменение пиксельных координат области, охватывающей мультимаршрут. Экземпляр класса Event.
update
Обновление мультимаршрута. Экземпляр класса Event.
Описание методов
getActiveRoute
{multiRouter.driving.Route|multiRouter.masstransit.Route|null} getActiveRoute()
Возвращает активный маршрут.
getBounds
{Number[][]|null} getBounds()
Возвращает географические координаты области, охватывающей мультимаршрут.
getPixelBounds
{Number[][]|null} getPixelBounds()
Возвращает глобальные пиксельные координаты области, охватывающей мультимаршрут.
getRoutes
{GeoObjectCollection} getRoutes()
Возвращает дочернюю коллекцию единичных маршрутов мультимаршрута.
getViaPoints
{GeoObjectCollection} getViaPoints()
Возвращает дочернюю коллекцию транзитных точек мультимаршрута.
getWayPoints
{GeoObjectCollection} getWayPoints()
Возвращает дочернюю коллекцию путевых точек мультимаршрута.
setActiveRoute
{} setActiveRoute(route)
Устанавливает активный маршрут. При этом предыдущий активный маршрут деактивируется, и генерируется событие multiRouter.MultiRoute.activeroutechange.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
multiRouter.masstransit.Route|null Устанавливает активный маршрут. |
* Обязательный параметр/опция.
Обязательный параметр.