Skip To Content
ArcGIS Developers
Dashboard

Overlay Layers

Overlay Layers

The Overlay Layers task combines two or more layers into a single layer. You can think of overlay as peering through a stack of maps and creating a single map containing all the information from the stack. Before the advent of GIS, cartographers would manually copy maps onto clear acetate sheets, overlay the sheets on a light table, and hand draw a new map from the overlaid data. Overlay is more than a merging of line work; all the attributes of the features in the overlay are carried through to the final product. Overlay is used to answer one of the most basic questions of geography: What is on top of what?

The following are examples:

  • What parcels are within the 100-year floodplain? (Within is another way of saying on top of.)
  • What roads are within what counties?
  • What land use is on top of what soil type?
  • What wells are within abandoned military bases?

Request URL

http://<analysis url>/OverlayLayers/submitJob

Request parameters

ParameterDescription

inputLayer

(Required)

The point, line, or polygon features that will be overlayed with the overlayLayer parameter.

Syntax: As described in detail in the Feature Input topic, this parameter can be

  • a URL to a feature service layer with an optional filter to select specific features, or
  • a feature collection.

Examples:

  • {"url": <feature service layer url>, "filter": <where clause>}
  • {"layerDefinition": {}, "featureSet": {}, "filter": <where clause>}

overlayLayer

(Required)

The features that will be overlaid with the inputLayer parameter features.

Syntax: As described in detail in the Feature Input topic, this parameter can be

  • a URL to a feature service layer with an optional filter to select specific features, or
  • a feature collection.

Examples:

  • {"url": <feature service layer url>, "filter": <where clause>}
  • {"layerDefinition": {}, "featureSet": {}, "filter": <where clause>}

overlayType

The type of overlay to be performed.

Values: Intersect | Union | Erase

Intersect Intersect

Computes a geometric intersection of the input layers. Features or portions of features that overlap in both the inputLayer and overlayLayer parameters will be written to the output layer. This is the default.

Union Union

Computes a geometric union of the input layers. All features and their attributes will be written to the output layer. This option is only valid if both the inputLayer and the overlayLayer parameter values contain polygon features.

Erase Erase

Only those features or portions of features in the inputLayer parameter that do not overlap the features in the overlayLayer parameter are written to the output.

Example: "overlayType": "Union"

outputType

The type of intersection to be found. This parameter is only valid when the overlayType parameter value is Intersect.

Values: Input | Line | Point

  • Input—The features returned will be the same geometry type as the inputLayer or overlayLayer parameter value with the lowest dimension geometry. If all inputs are polygons, the output will contain polygons. If one or more inputs are lines and no inputs are points, the output will be line. If one or more inputs are points, the output will contain points. This is the default.
  • Line—Line intersections will be returned. This is only valid if no inputs are points.
  • Point—Point intersections will be returned. If the inputs are line or polygon, the output will be a multipoint layer.

snapToInput

A Boolean value indicating whether feature vertices in the inputLayer parameter are allowed to move. The default is false and means if the distance between features is less than the tolerance value, all features from both layers can move to allow snapping to each other. When set to true, only features in overlayLayer can move to snap to the inputLayer features.

Values: true | false

Example: "snapToInput": true

tolerance

A double value of the minimum distance separating all feature coordinates as well as the distance a coordinate can move in the X or Y (or both) direction. The tolerance units are the same as the inputLayer units.

outputName

If provided, the task will create a feature service of the results. You define the name of the service. If outputName is not supplied, the task will return a feature collection.

Syntax:
{
  "serviceProperties": {
    "name": "<service name>"
  }
}

context

Contains additional settings that affect task execution. For Overlay Layers, there are two settings:

  • Extent (extent)—A bounding box that defines the analysis area. Only those features in the inputLayer and overlayLayer parameters and that intersect the bounding box will be overlaid.
  • Output Spatial Reference (outSR)—The output features will be projected into the output spatial reference.

Syntax:

{
"extent" : {extent}
"outSR" : {spatial reference}
}

f

The response format. The default response format is html.

Values: html | json

Response

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

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

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

http://<analysis url>/OverlayLayers/jobs/<jobId>

Access results

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

http://<analysis url>/OverlayLayers/jobs/<jobId>/results/outputLayer?token=<your token>&f=json

ParameterDescription

outputLayer

The features that are the result of the overlay. The type of feature (point, line, or polygon) depends on the input parameter settings.

Example:
{"url": 
"http://<analysis url>/OverlayLayers/jobs/<jobId>/results/outputLayer"}

The result includes properties for parameter name, data type, and value. The contents of value depend on the outputName parameter provided in the initial request.

  • If outputName was provided, value contains the URL to the feature service layer.

    {
    "paramName":"outputLayer", 
    "dataType":"GPString",
    "value":{"url":"<hosted featureservice layer url>"}
    }

  • If outputName was not provided, value contains a feature collection.

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

See Feature Output for more information about how the result layer or collection is accessed.