Skip To Content
ArcGIS Developer
Dashboard

Concurrencies

Description

License:

The ArcGIS Location Referencing license is required to use this resource.

This operation calculates concurrencies and dominance for a set of routes and measure ranges. A concurrency is an overlapping section of two or more routes in the same LRS Network that share a common centerline.

This operation determines the dominant route for each concurrency section. Route dominance is based on a set of business rules that can be configured for an LRS network. If the route dominance for a group of concurrent routes cannot be successfully calculated, the response includes a dominanceError property describing the reason. The following table lists the possible dominance errors:

Note:

Concurrencies are supported for continuous (nonline) networks only.

Dominance errorDescription
Tie

Two or more routes have the same attribute value for a concurrent section.

NoAttributes

A route does not have an attribute value for a concurrent section, or the attribute value is null.

TooManyAttributes

A route has multiple values of an event attribute for the same location in a concurrent section.

NotCalibrated

A concurrent section of a route is not calibrated with measures, or centerline start and endpoints cannot be located along the route.

Request parameters

ParameterDetails
f

Optional parameter to specify the response format. The default response format is html.

Values: html | json

locations

(Required)

Description: A list of routes and optional measure ranges where concurrencies can be found.

Syntax:

[
  { // find concurrencies along an entire route
    "routeId" : "<routeId>"
  },
  { // find concurrencies within a measure range
    "routeId" : "<routeId>",
    "fromMeasure" : <measure>,
    "toMeasure" : <measure>
  },
  ...
]
temporalViewDate

The time instant to use as a temporal view date when locating route features.

The parameter value is a number that represents the number of milliseconds since epoch (January 1, 1970) in UTC.

Syntax: temporalViewDate=<timeInstant>

Example: temporalViewDate=1230768000000 (1 Jan 2009 00:00:00 GMT)

fromDate

The start of a time range to use when locating route features. This parameter cannot be used with the temporalViewDate parameter.

The parameter value is a number that represents the number of milliseconds since epoch (January 1, 1970) in UTC.

Syntax: fromDate=<timeInstant>

Example: fromDate=1230768000000 (1 Jan 2009 00:00:00 GMT)

toDate

The end of a time range to use when locating route features. This parameter cannot be used with the temporalViewDate parameter.

The parameter value is a number that represents the number of milliseconds since epoch (January 1, 1970) in UTC.

Syntax: toDate=<timeInstant>

Example: toDate=1230768000000 (1 Jan 2009 00:00:00 GMT)

gdbVersion

Optional parameter to specify the geodatabase version to use. If this parameter is not specified, the published map's version is used.

Syntax: gdbVersion=<version>

Example: gdbVersion="user1.version1"

Example usage

Example 1

URL for calculating concurrencies for the entire measure span of a route.

https://sampleserver/arcgis/rest/services/MyLRS/MapServer/exts/LRServer/networkLayers/0/concurrencies?f=json&locations=[{"routeId":"I90"}]

Example 2

URL for calculating concurrencies for a measure range on a route.

https://sampleserver/arcgis/rest/services/MyLRS/MapServer/exts/LRServer/networkLayers/0/concurrencies?f=json&locations=[{"routeId":"I90","fromMeasure":25.1,"toMeasure":26.8}]

Example 3

URL for calculating concurrencies for multiple routes.

https://sampleserver/arcgis/rest/services/MyLRS/MapServer/exts/LRServer/networkLayers/0/concurrencies?f=json&locations=[{"routeId":"I90","fromMeasure":25.1,"toMeasure":26.8},{"routeId":"US20"}]

Example 4

URL for calculating concurrencies for a time instant (view date).

https://sampleserver/arcgis/rest/services/MyLRS/MapServer/exts/LRServer/networkLayers/0/concurrencies?f=json&locations=[{"routeId":"I90"}]&temporalViewDate=1230768000000

Example 5

URL for calculating concurrencies for a time range.

https://sampleserver/arcgis/rest/services/MyLRS/MapServer/exts/LRServer/networkLayers/0/concurrencies?f=json&locations=[{"routeId":"I90"}]&fromDate=1230768000000&toDate=1388534400000

JSON Response syntax

{
  "locations" : [
    {
      // source location properties
      "routeId" : "<routeId>",
      "fromMeasure" : <measure>,
      "toMeasure" : <measure>,

      "concurrencies" : [  // a list of all sections with concurrent routes
        {
          "routeId" : "<routeId>",
          "fromMeasure" : <measure>,
          "toMeasure" : <measure>,
          "fromDate" : <timestamp>,
          "toDate" : <timestamp>,
          "sectionId" : <integer>,  // correlates multiple concurrency records for a single section of shared centerline
          "isDominant" : <true | false>,
          "dominanceError" : "<Tie | NoAttributes | TooManyAttributes | NotCalibrated>"
        },
        ...
      ]
    },
    ...
  ]
}

JSON Response example

{
  "locations" : [
    {
      "routeId" : "US101",
      "fromMeasure" : 0,
      "toMeasure" : 5.8,
      "concurrencies" : [
        {
          "routeId" : "US101",
          "fromMeasure" : 1.2,
          "toMeasure" : 1.65,
          "fromDate" : 1230768000000,
          "toDate" : null,
          "sectionId" : 1,
          "isDominant" : true
        },
        {
          "routeId" : "SR210",
          "fromMeasure" : 37.45,
          "toMeasure" : 37.9,
          "fromDate" : 1230768000000,
          "toDate" : null,
          "sectionId" : 1,
          "isDominant" : false
        },
        {
          "routeId" : "US101",
          "fromMeasure" : 5.0,
          "toMeasure" : 5.8,
          "fromDate" : 1230768000000,
          "toDate" : null,
          "sectionId" : 2,
          "isDominant" : false,
          "dominanceError" : "NoAttributes"
        },
        {
          "routeId" : "I5",
          "fromMeasure" : 81.54,
          "toMeasure" : 80.7,
          "fromDate" : 1230768000000,
          "toDate" : null,
          "sectionId" : 2,
          "isDominant" : true
        }
      ]
    }
  ]
}