import { originDestinationMatrix } from '@esri/arcgis-rest-routing';
  origins: [
    [-90.404302, 38.600621],
    [-90.364293, 38.620427],
  destinations: [
    [-90.444716, 38.635501],
    [-90.311919, 38.633523],
    [-90.451147, 38.581107]
  .then(response) // => { ... }

Used to create an origin-destination (OD) cost matrix from multiple origins to multiple destinations. See the REST Documentation for more information.


Parameter Type Default Notes
requestOptions Required IOriginDestinationMatrixOptions

Options to pass through to the routing service.

Available requestOptions

Property Type Notes
destinations Array<IPoint | ILocation | [number, number]> | IFeatureSet

Specify the ending point locations to travel to from the origins.

origins Array<IPoint | ILocation | [number, number]> | IFeatureSet

Specify the starting points from which to travel to the destinations.

barriers Optional Array<IPoint | ILocation | [number, number]> | IFeatureSet
outputType Optional "esriNAODOutputSparseMatrix" | "esriNAODOutputStraightLines" | "esriNAODOutputNoLines"

Specify the type of output returned by the service. Defaults to "esriNAODOutputSparseMatrix".

polygonBarriers Optional IFeatureSet
polylineBarriers Optional IFeatureSet
returnBarriers Optional boolean
returnDestinations Optional boolean
returnOrigins Optional boolean
returnPolygonBarriers Optional boolean
returnPolylineBarriers Optional boolean
authentication Optional Inherited IAuthenticationManager

The instance of IAuthenticationManager to use to authenticate this request.

credentials Optional Inherited RequestCredentials

A string indicating whether credentials (cookies) will be sent with the request. Used internally for authentication workflows.

endpoint Optional Inherited string

Any ArcGIS Routing service (example: https://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Network/USA/NAServer/Route/ ) to use for the routing service request.

fetch Optional Inherited function(input: RequestInfo, init: RequestInit) : Promise<Response>

The implementation of fetch to use. Defaults to a global fetch.

headers Optional Inherited [key: string]: any

Additional Headers to pass into the request.

hideToken Optional Inherited boolean

Prevents the token from being passed in a URL Query param that is saved in browser history. Instead, the token will be passed in POST request body or through X-Esri-Authorization header. NOTE: This will force POST requests in browsers since auth header is not yet supported by preflight OPTIONS check with CORS.

httpMethod Optional Inherited HTTPMethods

The HTTP method to send the request with.

maxUrlLength Optional Inherited number

If the length of a GET request's URL exceeds maxUrlLength the request will use POST instead.

params Optional Inherited IParams

Additional parameters to pass in the request.

portal Optional Inherited string

Base url for the portal you want to make the request to. Defaults to authentication.portal if authentication exists, otherwise to 'https://www.arcgis.com/sharing/rest'.

rawResponse Optional Inherited boolean

Return the raw response


A Promise that will resolve with travel time and/or distance for each origin-destination pair. It returns either odLines or odCostMatrix for this information depending on the outputType you specify.

Property Type Notes
messages {
| {
barriers Optional IFeatureSetWithGeoJson
destinations Optional IFeatureSetWithGeoJson
odCostMatrix Optional any

Only present if outputType is "esriNAODOutputSparseMatrix". Full description is available at https://developers.arcgis.com/rest/network/api-reference/origin-destination-cost-matrix-synchronous-service.htm#ESRI_SECTION2_114F8364507C4B56B780DFAD505270FB.

odLines Optional IFeatureSetWithGeoJson

Only present if outputType is "esriNAODOutputStraightLines" or "esriNAODOutputNoLines". Includes the geometry for the straight line connecting each origin-destination pair when the outputType is "esriNAODOutputStraightLines".

origins Optional IFeatureSetWithGeoJson
polygonBarriers Optional IFeatureSetWithGeoJson
polylineBarriers Optional IFeatureSetWithGeoJson

REST API documentation for originDestinationMatrix() available at https://developers.arcgis.com/rest/network/api-reference/origin-destination-cost-matrix-synchronous-service.htm
Function defined in packages/arcgis-rest-routing/src/originDestinationMatrix.ts:98