---
metadata:
  - name: generator
    content: Diplodoc Platform v5.39.1
alternate:
  - https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.MultiRouteModel.md
  - https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/multiRouter.MultiRouteModel.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com.tr/dev/jsapi-v2-1/doc/en/llms.txt

# multiRouter.MultiRouteModel

Extends [IEventEmitter](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IEventEmitter.md).

The data model of a multiroute.

[Constructor](#constructor-summary) | [Fields](#properties-summary) | [Events](#events-summary) | [Methods](#methods-summary)

## Constructor {#constructor-summary}

```javascript
multiRouter.MultiRouteModel(referencePoints[, params])
```

Creates the data model of a multiroute.

**Parameters:**

#|
|| **Parameter** | **Default value** | **Description**  ||
|| [`referencePoints`](#param-referencePoints)[*](*star) | — | Type: [IMultiRouteReferencePoint](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IMultiRouteReferencePoint.md)[]

The description of the reference points on the multiroute. ||
|| [`params`](#param-params) | — | Type: [IMultiRouteParams](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IMultiRouteParams.md)

Routing options. ||
|#

\* Mandatory parameter/option.

**Example:**

```javascript
// Creating a model of the multiroute.
var multiRouteModel = new ymaps.multiRouter.MultiRouteModel(['Moscow', 'Tver', 'Peterburg'], {
    avoidTrafficJams: true,
    viaIndexes: [1]
});

// Creating a representation of a multiroute based on the model.
var multiRouteView = new ymaps.multiRouter.MultiRoute(multiRouteModel);
myMap.geoObjects.add(multiRouteView);

// Subscribing to the events of the multiroute model.
multiRouteView.model.events
    .add("requestsuccess", function (event) {
        var routes = event.get("target").getRoutes();
        console.log("Found routes: " + routes.length);
        for (var i = 0, l = routes.length; i < l; i++) {
            console.log("Route length " + (i + 1) + ": " + routes[i].properties.get("distance").text);
        }
    })
    .add("requestfail", function (event) {
        console.log("Error: " + event.get("error").message);
    });
```

## Fields {#properties-summary}

#|
|| **Name** | **Type** | **Description** ||
|| [events](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IEventEmitter.md#events) | [IEventManager](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IEventManager.md) | Event manager.

Inherited from [IEventEmitter](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IEventEmitter.md#events). ||
|| [properties](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.MultiRouteModel.md#properties) | [data.Manager](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/data.Manager.md) | Multiroute data. ||
|#

## Events {#events-summary}

#|
|| **Name** | **Description** ||
|| [requestcancel](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.MultiRouteModel.md#event-requestcancel) | The data request has been canceled. Instance of the [Event](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Event.md) class. Names of fields that are available via the [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Event.md#get) method: 
- referencePoints: Object[] - Array describing the set of reference points.
- params: Object - Routing options. ||
|| [requestchange](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.MultiRouteModel.md#event-requestchange) | The reference data model of a multiroute (anchor points or routing options) has been changed. The result is a new data request to the routing service. Instance of the Event class. Names of fields that are available via the [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Event.md#get) method: 
- referencePoints: Object[] - Array describing the set of reference points.
- params: Object - Routing parameters.
- oldReferencePoints: Object[] - Array describing the previous array of reference points.
- oldParams: Object - Previous routing options. ||
|| [requestfail](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.MultiRouteModel.md#event-requestfail) | The request for data has failed. Instance of the [Event](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Event.md) class. Names of fields that are available via the [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Event.md#get) method: 
- error: Error - error object. ||
|| [requestsend](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.MultiRouteModel.md#event-requestsend) | A new request for the multiroute data model has been sent. Instance of the [Event](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Event.md) class. Names of fields that are available via the [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Event.md#get) method: 
- referencePoints: Object[] - Array describing the set of reference points.
- params: Object - Routing options. ||
|| [requestsuccess](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.MultiRouteModel.md#event-requestsuccess) | The request for data has completed successfully and the data model has been updated. Instance of the [Event](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Event.md) class. Names of fields that are available via the [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Event.md#get) method: 
- init: Boolean - Indicates an initialization request.
- rough: Boolean - Indicates whether it is an intermediate request (used to optimize the size of 	the server response when editing a route).
- wayPointsChange: Boolean - Indicates whether the set of waypoints changed.
- viaPointsChange: Boolean - Indicates whether the set of throughpoints changed.
- routesChange: Boolean - Indicates whether the set of routes changed. ||
|#

## Methods {#methods-summary}

#|
|| **Name** | **Returns** | **Description** ||
|| [destroy](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.MultiRouteModel.md#destroy)() | | Destroys a model. ||
|| [getAllPoints](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.MultiRouteModel.md#getAllPoints)() | ([multiRouter.WayPointModel](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.WayPointModel.md)\|[multiRouter.ViaPointModel](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.ViaPointModel.md))[] | Returns the combined array of models of throughpoints and waypoints, in the same order as the corresponding reference points. ||
|| [getJson](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.MultiRouteModel.md#getJson)() | Object | Returns JSON data for the multiroute model. ||
|| [getParams](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.MultiRouteModel.md#getParams)() | [IMultiRouteParams](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IMultiRouteParams.md) | Returns the object with the current values of routing options. ||
|| [getPoints](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.MultiRouteModel.md#getPoints)() | ([multiRouter.WayPointModel](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.WayPointModel.md)\|[multiRouter.ViaPointModel](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.ViaPointModel.md))[] | Deprecated name of the multiRouter.MultiRouteModel.getAllPoints method. Not recommended for use. ||
|| [getReferencePointIndexes](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.MultiRouteModel.md#getReferencePointIndexes)() | Object | Returns an object containing the following data fields: 
- way: Integer[] - Indexes of reference points corresponding to the set of the model's waypoints.
- via: Integer[] - Indexes of reference points corresponding to the set of the model's throughpoints. ||
|| [getReferencePoints](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.MultiRouteModel.md#getReferencePoints)() | [IMultiRouteReferencePoint](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IMultiRouteReferencePoint.md)[] | Returns array of reference points on the multiroute. ||
|| [getRoutes](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.MultiRouteModel.md#getRoutes)() | [multiRouter.driving.RouteModel](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.driving.RouteModel.md)[]\|[multiRouter.masstransit.RouteModel](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.masstransit.RouteModel.md)[] | Returns an array of models for child routes. ||
|| [getViaPoints](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.MultiRouteModel.md#getViaPoints)() | [multiRouter.ViaPointModel](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.ViaPointModel.md)[] | Returns an array of models for child throughpoints. ||
|| [getWayPoints](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.MultiRouteModel.md#getWayPoints)() | [multiRouter.WayPointModel](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.WayPointModel.md)[] | Returns an array of models for child waypoints. ||
|| [setParams](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.MultiRouteModel.md#setParams)([params](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.MultiRouteModel.md#setParams-param-params)[, [extend](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.MultiRouteModel.md#setParams-param-extend)[, [clearRequests](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.MultiRouteModel.md#setParams-param-clearRequests)]]) | | Sets routing options. ||
|| [setReferencePoints](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.MultiRouteModel.md#setReferencePoints)([referencePoints](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.MultiRouteModel.md#setReferencePoints-param-referencePoints)[, [viaIndexes](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.MultiRouteModel.md#setReferencePoints-param-viaIndexes)[, [clearRequests](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.MultiRouteModel.md#setReferencePoints-param-clearRequests)]]) | | Sets the reference points on the multiroute. ||
|#

## Fields details {#field_detail}

### properties {#properties}

```javascript
{data.Manager} properties
```

Multiroute data.

## Events details {#event_detail}

### requestcancel {#requestcancel}

The data request has been canceled. Instance of the [Event](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Event.md) class. Names of fields that are available via the [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Event.md#get) method: 
- referencePoints: Object[] - Array describing the set of reference points.
- params: Object - Routing options.

### requestchange {#requestchange}

The reference data model of a multiroute (anchor points or routing options) has been changed. The result is a new data request to the routing service. Instance of the Event class. Names of fields that are available via the [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Event.md#get) method: 
- referencePoints: Object[] - Array describing the set of reference points.
- params: Object - Routing parameters.
- oldReferencePoints: Object[] - Array describing the previous array of reference points.
- oldParams: Object - Previous routing options.

### requestfail {#requestfail}

The request for data has failed. Instance of the [Event](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Event.md) class. Names of fields that are available via the [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Event.md#get) method: 
- error: Error - error object.

### requestsend {#requestsend}

A new request for the multiroute data model has been sent. Instance of the [Event](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Event.md) class. Names of fields that are available via the [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Event.md#get) method: 
- referencePoints: Object[] - Array describing the set of reference points.
- params: Object - Routing options.

### requestsuccess {#requestsuccess}

The request for data has completed successfully and the data model has been updated. Instance of the [Event](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Event.md) class. Names of fields that are available via the [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Event.md#get) method: 
- init: Boolean - Indicates an initialization request.
- rough: Boolean - Indicates whether it is an intermediate request (used to optimize the size of 	the server response when editing a route).
- wayPointsChange: Boolean - Indicates whether the set of waypoints changed.
- viaPointsChange: Boolean - Indicates whether the set of throughpoints changed.
- routesChange: Boolean - Indicates whether the set of routes changed.

## Methods details {#method_detail}

### destroy {#destroy}

```javascript
{} destroy()
```

Destroys a model.

### getAllPoints {#getAllPoints}

```javascript
{(multiRouter.WayPointModel|multiRouter.ViaPointModel)[]} getAllPoints()
```

**Returns** the combined array of models of throughpoints and waypoints, in the same order as the corresponding reference points.

### getJson {#getJson}

```javascript
{Object} getJson()
```

**Returns** JSON data for the multiroute model.

### getParams {#getParams}

```javascript
{IMultiRouteParams} getParams()
```

**Returns** the object with the current values of routing options.

### getPoints {#getPoints}

```javascript
{(multiRouter.WayPointModel|multiRouter.ViaPointModel)[]} getPoints()
```

Deprecated name of the multiRouter.MultiRouteModel.getAllPoints method. Not recommended for use.

**Returns** the combined array of models of throughpoints and waypoints, in the same order as the corresponding reference points.

### getReferencePointIndexes {#getReferencePointIndexes}

```javascript
{Object} getReferencePointIndexes()
```

**Returns** an object containing the following data fields: 
- way: Integer[] - Indexes of reference points corresponding to the set of the model's waypoints.
- via: Integer[] - Indexes of reference points corresponding to the set of the model's throughpoints.

### getReferencePoints {#getReferencePoints}

```javascript
{IMultiRouteReferencePoint[]} getReferencePoints()
```

**Returns** array of reference points on the multiroute.

### getRoutes {#getRoutes}

```javascript
{multiRouter.driving.RouteModel[]|multiRouter.masstransit.RouteModel[]} getRoutes()
```

**Returns** an array of models for child routes.

### getViaPoints {#getViaPoints}

```javascript
{multiRouter.ViaPointModel[]} getViaPoints()
```

**Returns** an array of models for child throughpoints.

### getWayPoints {#getWayPoints}

```javascript
{multiRouter.WayPointModel[]} getWayPoints()
```

**Returns** an array of models for child waypoints.

### setParams {#setParams}

```javascript
{} setParams(params[, extend[, clearRequests]])
```

Sets routing options.

**Parameters:**

#|
|| **Parameter** | **Default value** | **Description**  ||
|| [`params`](#setParams-param-params)[*](*star) | — | Type: [IMultiRouteParams](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IMultiRouteParams.md)

Routing options. ||
|| [`extend`](#setParams-param-extend) | false | Type: Boolean

Allows you to change only the specified set of parameters keeping all the rest of the values the same. ||
|| [`clearRequests`](#setParams-param-clearRequests) | false | Type: Boolean

Allows you to clear the queue of previous requests to the server. ||
|#

\* Mandatory parameter/option.

### setReferencePoints {#setReferencePoints}

```javascript
{} setReferencePoints(referencePoints[, viaIndexes[, clearRequests]])
```

Sets the reference points on the multiroute.

**Parameters:**

#|
|| **Parameter** | **Default value** | **Description**  ||
|| [`referencePoints`](#setReferencePoints-param-referencePoints)[*](*star) | — | Type: [IMultiRouteReferencePoint](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IMultiRouteReferencePoint.md)[]

Array of reference points. ||
|| [`viaIndexes`](#setReferencePoints-param-viaIndexes) | — | Type: Integer[]

Indexes of throughpoints in the array of reference points. ||
|| [`clearRequests`](#setReferencePoints-param-clearRequests) | false | Type: Boolean

Allows you to clear the queue of previous requests to the server. ||
|#

\* Mandatory parameter/option.

[*star]: Mandatory parameter/option.