multiRouter.MultiRoute

Расширяет IGeoObject.

Мультимаршрут на карте. Позволяет отображать на карте маршрут и несколько альтернатив к нему. Предоставляет интерфейс выбора активного маршрута.

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

Конструктор

multiRouter.MultiRoute(model[, options])

Создает мультимаршрут на карте.

Параметры:

Параметр

Значение по умолчанию

Описание

model*

Тип: multiRouter.MultiRouteModel|IMultiRouteModelJson

Модель данных мультимаршрута, либо объект описания модели. В случае передачи объекта описания, модель на его основе создается автоматически.

options

Тип: Object

Опции мультимаршрута. Для задания опций составных частей маршрутов доступны следующие префиксы:

  • wayPoint – опции путевых точек;
  • wayPointStart – опции отображения начальной путевой точки;
  • wayPointFinish – опции отображения конечной путевой точки;
  • viaPoint – опции транзитных точек;
  • pin - опции точечных маркеров на маршруте;
  • editor – опции редактора мультимаршрута (см. multiRouter.Editor).
    Для задания опций единичных маршрутов доступны следующие префиксы:
  • route – опции маршрутов, в том числе неактивных;
  • routeActive – опции активного маршрута.
    Причем опции заданные с префиксом "routeActive" более приоритетны по отношению к опциям с префиксом "route". Для задания опций составных частей маршрутов общественного транспорта доступны следующие префиксы.
  • routeMarker – опции меток сегментов маршрута;
  • routeWalkMarker – опции меток пеших сегментов маршрута;
  • routeTransferMarker – опции меток сегментов переходов;
  • routeTransportMarker – опции меток транспортных сегментов маршрута;
  • routeWalkSegment – опции линий пеших сегментов маршрута;
  • routeTransferMarker – опции линий сегментов переходов;
  • routeTransportSegment – опции линий транспортных сегментов маршрута;
  • routePedestrianSegment – опции линий сегментов пешеходного маршрута.
    Также данные префиксы доступны в "routeActive*" варианте.

options.activeRouteAutoSelection

true

Тип: Boolean

После обновления данных автоматически выбирать в качестве активного маршрут с минимальным временем проезда.

options.boundsAutoApply

false

Тип: Boolean

При добавлении мультимаршрута на карту позволяет автоматически установить центр и коэффициент масштабирования так, чтобы мультимаршрут был виден целиком.

options.dragUpdateInterval

Тип: String|Number

Величина временного интервала перестроения маршрута при перетаскивании опорных точек. Может быть задана в миллисекундах, либо оптимальное значение будет рассчитываться автоматически. Значение данной опции транслируется в параметр IMultiRouteParams.requestSendInterval модели мультимаршрута.

options.preventDragUpdate

false

Тип: Boolean

Позволяет отключить обновление маршрута во время перетаскивания опорных точек.

options.useMapMargin

true

Тип: Boolean

Нужно ли учитывать отступы карты map.margin.Manager.

options.zoomMargin

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;
        }
    }
});

Поля

Имя

Тип

Описание

editor

multiRouter.EditorAddon

Редактор мультимаршрута.

events

IEventManager

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

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

geometry

IGeometry|null

Геометрия геообъекта.

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

model

multiRouter.MultiRouteModel

Модель данных мультимаршрута.

options

IOptionManager

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

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

properties

IDataManager

Данные геообъекта.

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

state

IDataManager

Состояние геообъекта.

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

События

Имя

Описание

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.

click

Однократное нажатие левой кнопки мыши на объекте. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Экземпляр класса MapEvent. Более детальное описание доступно в domEvent.manager.

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

contextmenu

Вызов контекстного меню на элементе. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Экземпляр класса MapEvent. Более детальное описание доступно в domEvent.manager.

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

dblclick

Двойное нажатие левой кнопки мыши на объекте. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Экземпляр класса MapEvent. Более детальное описание доступно в domEvent.manager.

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

geometrychange

Изменение геометрии геообъекта. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

  • originalEvent: IEvent - оригинальное событие геометрии.

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

mapchange

Сменилась карта. Поля данных:

  • oldMap - старая карта;
  • newMap - новая карта.

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

mousedown

Нажатие кнопки мыши над объектом. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Экземпляр класса MapEvent. Более детальное описание доступно в domEvent.manager.

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

mouseenter

Наведение курсора на объект. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Экземпляр класса MapEvent. Более детальное описание доступно в domEvent.manager.

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

mouseleave

Вывод курсора за пределы объекта. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Экземпляр класса MapEvent. Более детальное описание доступно в domEvent.manager.

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

mousemove

Перемещение курсора над объектом. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Экземпляр класса MapEvent. Более детальное описание доступно в domEvent.manager.

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

mouseup

Отпускание кнопки мыши над объектом. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Экземпляр класса MapEvent. Более детальное описание доступно в domEvent.manager.

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

multitouchend

Окончание мультисенсорного управления. Данное событие доступно только на устройствах, которые поддерживают множественные сенсорные прикосновения. Возвращает реализацию интерфейса IMultiTouchEvent.

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

multitouchmove

Повторящееся событие при мультисенсорном управлении. Данное событие доступно только на устройствах, которые поддерживают множественные сенсорные прикосновения. Возвращает реализацию интерфейса IMultiTouchEvent c информацией о прикосновениях. Определяет свойство touches, которое содержит список прикосновений. Каждое прикосновение описано объектом, которое содержит поля:

  • clientX - координата касания X относительно видимой области браузера;
  • clientY - координата касания Y относительно видимой области браузера;
  • pageX - координата касания X касания относительно начала документа;
  • pageY - координата касания Y касания относительно начала документа.

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

multitouchstart

Начало мультисенсорного управления. Данное событие доступно только на устройствах, которые поддерживают множественные сенсорные прикосновения. Возвращает реализацию интерфейса IMultiTouchEvent c информацией о прикосновениях. Определяет свойство touches, которое содержит список прикосновений. Каждое прикосновение описано объектом, которое содержит поля:

  • clientX - координата касания X относительно видимой области браузера;
  • clientY - координата касания Y относительно видимой области браузера;
  • pageX - координата касания X касания относительно начала документа;
  • pageY - координата касания Y касания относительно начала документа.

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

optionschange

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

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

overlaychange

Изменение оверлея геообъекта. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

  • overlay: IOverlay|null - ссылка на оверлей;
  • oldOverlay: IOverlay|null - предыдущий оверлей геообъекта.

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

parentchange

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

Поля данных:

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

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

pixelboundschange

Изменение пиксельных координат области, охватывающей мультимаршрут. Экземпляр класса Event.

propertieschange

Изменение данных геообъекта. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

  • originalEvent: IEvent - оригинальное событие менеджера данных.

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

update

Обновление мультимаршрута. Экземпляр класса Event.

wheel

Скролл мышкой. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Экземпляр класса MapEvent. Более детальное описание доступно в domEvent.manager.

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

Методы

Имя

Возвращает

Описание

getActiveRoute()

multiRouter.driving.Route|multiRouter.masstransit.Route|null

Возвращает активный маршрут.

getBounds()

Number[][]|null

Возвращает географические координаты области, охватывающей мультимаршрут.

getMap()

Map

Возвращает ссылку на карту.

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

getOverlay()

vow.Promise

Возвращает объект-обещание, который подтверждается объектом оверлея в момент его фактического создания, либо отклоняется с передачей соответствующей ошибки.

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

getOverlaySync()

IOverlay|null

Метод предоставляет синхронный доступ к оверлею.

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

getParent()

IParentOnMap|null

Возвращает ссылку на родительский объект или null, если родительский элемент не был установлен.

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

getPixelBounds()

Number[][]|null

Возвращает глобальные пиксельные координаты области, охватывающей мультимаршрут.

getRoutes()

GeoObjectCollection

Возвращает дочернюю коллекцию единичных маршрутов мультимаршрута.

getViaPoints()

GeoObjectCollection

Возвращает дочернюю коллекцию транзитных точек мультимаршрута.

getWayPoints()

GeoObjectCollection

Возвращает дочернюю коллекцию путевых точек мультимаршрута.

setActiveRoute(route)

Устанавливает активный маршрут. При этом предыдущий активный маршрут деактивируется, и генерируется событие multiRouter.MultiRoute.activeroutechange.

setParent(parent)

IChildOnMap

Устанавливает родительский объект. Если передать значение 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.

Параметры:

Параметр

Значение по умолчанию

Описание

route*

Тип: multiRouter.driving.Route

multiRouter.masstransit.Route|null

Устанавливает активный маршрут.

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