ArcGIS REST API

Determine Travel Cost Path as Polyline

Description

Determine Travel Cost Path as Polyline diagram

The Determine Travel Cost Path as Polyline task calculates the least cost path between sources and destinations.

The path determined by this operation is relative to the cost united defined by the cost raster. An application for this operation includes trying to find the best route for a new road in terms of constructing costs.

Request parameters

ParameterDetails
inputSourceRasterOrFeatures

(Required)

The layer that identifies the cells to determine the least costly path from.

Syntax: This parameter can have either a raster input or a feature input. For raster input, this parameter can be specified as a Portal Item ID, a URL to a raster image service layer, a cloud raster dataset, or a shared raster dataset. For feature input, this parameter can be specified as either a URL to a feature service layer or a feature collection.

Raster input examples:

//Portal item as input raster
"inputSourceRasterOrFeatures":{"itemId": <portal item Id>}

//URL as input raster
"inputSourceRasterOrFeatures":{"url": <image service layer url>}

Feature input examples:

//Feature layer URL
"inputSourceRasterOrFeatures":{"url": <feature service layer url>}

//Feature collection
"inputSourceRasterOrFeatures":{"layerDefinition": {}, "featureSet": {}}

inputCostRaster

(Required)

A raster defining the impedance or cost to move planimetrically through each cell. The value at each cell location represents the cost-per-unit distance for moving through the cell. Each cell location value is multiplied by the cell resolution while also compensating for diagonal movement to obtain the total cost of passing through the cell. The values of the cost raster can be an integer or a floating point, but they cannot be negative or zero as you cannot have a negative or zero cost.

Syntax: This parameter can be specified as a Portal Item ID, a URL to a raster image service layer, a cloud raster dataset, or a shared raster dataset.

Examples:

//Portal item as input raster
"inputCostRaster":{"itemId": <portal item id>}

//URL as input raster
"inputCostRaster":{"url": <image service layer url>}

inputDestinationRasterOrFeatures

(Required)

The layer that defines the destinations used to calculate the distance. The layer can be an image service or a feature service.

Syntax: This parameter can have either a raster input or a feature input. For raster input, this parameter can be specified as a Portal Item ID, a URL to a raster image service layer, a cloud raster dataset, or a shared raster dataset. For feature input, this parameter can be specified as either a URL to a feature service layer or a feature collection.

Raster input examples:

//Portal item as input raster
"inputDestinationRasterOrFeatures":{"itemId": <portal item id>}

//URL as input raster
"inputDestinationRasterOrFeatures":{"url": <image service layer url>}

Feature input examples:

//Feature layer URL
"inputDestinationRasterOrFeatures":{"url": <feature service layer url>}

//Feature collection
"inputDestinationRasterOrFeatures":{"layerDefinition": {}, "featureset": {}}

outputPolylineName

(Required)

The task will create a feature service of the results. You can define the name of the service.

Output feature service examples:

//REST web example
myOutput

//REST scripting example
"outputPolylineName" : "myOutput1"

pathType

A keyword defining the manner in which the values and zones on the input destination data will be interpreted in the cost path calculations.

A string describing the path type, which can either be BEST_SINGLE, EACH_CELL, or EACH_ZONE.

  • BEST_SINGLE: For all cells on the input destination data, the least-cost path is derived from the cell with the minimum of the least-cost paths to source cells. This is the default.
  • EACH_CELL: For each cell with valid values on the input destination data, at least-cost path is determined and saved on the output raster. With this option, each cell of the input destination data is treated separately, and a least-cost path is determined for each from cell.
  • EACH_ZONE: For each zone on the input destination data, a least-cost path is determined and saved on the output raster. With this option, the least-cost path for each zone begins at the cell with the lowest cost distance weighting in the zone.

Example:

"pathType": "EACH_ZONE"

context

Contains additional settings that affect task execution. This task has the following settings:

  • Extent (extent): A bounding box that defines the analysis area.
  • Output Spatial Reference (outSR): The output raster will be projected into the output spatial reference.
  • Snap Raster (snapRaster): The output raster will have its cells aligned with the specified snap raster.
  • Cell Size (cellSize): The output raster will have the resolution specified by cell size.
  • Mask (mask): Only cells that fall within the analysis mask will be considered in the operation.
f

The response format. The default response format is html.

Values: html | json

Response

When you submit a request, the task assigns a unique job ID for the transaction.

{
  "jobId": "<unique job identifier>",
  "jobStatus": "<job status>"
}

After the initial request is submitted, you can use the jobId to periodically check the status of the job and messages as described in Checking job status. Once the job has successfully completed, you use the jobId to retrieve the results. To track the status, you can make a request of the following form:

https://<raster analysis tools url>/DetermineTravelCostPathAsPolyline/jobs/<jobId>

When the status of the job request is esriJobSucceeded, you can access the results of the analysis by making a request of the following form:

https://<raster analysis tools url>/DetermineTravelCostPathsAsPolyline/jobs/<jobId>/results/outputPolylineFeatures

Example usage

Below is a sample request URL for DetermineTravelCostPathAsPolyline.

https://services.myserver.com/arcgis/rest/services/System/RasterAnalysisTools/GPServer/DetermineTravelCostPathAsPolyline/submitJob

JSON response example

The response returns the outputPolylineFeatures output parameter, which has properties for parameter name, data type, and value. The content of value depends on the outputPolylineName parameter being provided in the initial request. If outputPolylineName was provided, value contains the URL for the feature service layer. If outputPolylineName was not provided, value contains a feature collection.

outputPolylineName is provided in request:

{
  "paramName":"outputPolylineFeatures",
  "dataType":"GPString",
  "value":{"url":"<hosted feature service layer url>"}
}

outputPolylineName is not provided in request:

{
  "paramName":"outputPolylineFeatures",
  "dataType":"GPString",
  "value":{"layerDefinition": {}, "featureSet": {}}
}