Dissolve Boundaries

Dissolve Boundaries

The Dissolve Boundaries task finds polygons that overlap or share a common boundary and merges them together to form a single polygon.

You can control which boundaries are merged by specifying a field. For example, if you have a layer of counties, and each county has a State_Name attribute, you can dissolve boundaries using the State_Name attribute. Adjacent counties will be merged together if they have the same value for State_Name. The end result is a layer of state boundaries.

Request URL

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

Request Parameters

ParameterDescription

inputLayer

(Required)

The layer containing polygon features that will be dissolved.

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>}

dissolveFields

One or more fields on the inputLayer that control which polygons are merged. If you don't supply dissolveFields , or you supply an empty list of fields, polygons that share a common border (that is, they are adjacent) or polygon areas that overlap will be dissolved into one polygon.

If you do supply values for the dissolveFields parameter, polygons that share a common border and contain the same value in one or more fields will be dissolved. For example, if you have a layer of counties, and each county has a State_Name attribute, you can dissolve boundaries using the State_Name attribute. Adjacent counties will be merged together if they have the same value for State_Name. The end result is a layer of state boundaries.If two or more fields are specified, the values in these fields must be the same for the boundary to be dissolved.

Example: "dissolveFields": ["State_Name", "District"]

summaryFields

A list of field names and statistical summary type that you wish to calculate from the polygons that are dissolved together. For example, if you are dissolving counties based on State_Name, and each county had a Population field, you can sum Population. The result would be a layer of state boundaries with total population.

Syntax: ["fieldName summaryType","fieldName summaryType", ...]

fieldName is the name of one of the numeric fields found in the InputLayer.

summaryType is one of the following:

  • Sum - Adds the total value of all the points in each polygon
  • Mean - Calculates the average of all the points in each polygon.
  • Min - Finds the smallest value of all the points in each polygon.
  • Max - Finds the largest value of all the points in each polygon.
  • Stddev - Finds the standard deviation of all the points in each polygon.

Example: "summaryFields": ["Annual_Sales Sum", "Annual_Sales Min"]

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

Context contains additional settings that affect task execution. For Dissolve Boundaries, there are two settings.

  1. Extent (extent)—a bounding box that defines the analysis area. Only those features in the InputLayer that intersect the bounding box will be dissolved.
  2. 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 to periodically check the status of the job and messages as described in the topic Checking job status. Once the job has successfully completed, you use the jobId to retrive the results. To track the status, you can make a request of the following form:

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

Accessing 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>/DissolveBoundaries/jobs/<jobId>/results/dissolvedLayer?token=<your token>&f=json

ParameterDescription

dissolvedLayer

The result of dissolving the input polygons.

Example:
{"url": 
"http://<analysis url>/DissolveBoundaries/jobs/<jobId>/results/dissolvedLayer"}

The result has properties for parameter name, data type, and value. The contents of value depends upon the outputName parameter provided in the initial request.

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

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

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

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

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