Skip To Content
ArcGIS Developers
Dashboard

Generalize

Description

The generalize operation is performed on a geometry service resource. The generalize operation simplifies the input geometries using the Douglas-Peucker algorithm with a specified maximum deviation distance. The output geometries will contain a subset of the original input vertices.

You can provide arguments to the generalize operation as query parameters defined in the following parameters table:

Request parameters

ParameterDetails
f

The response format. The default response format is html.
Values:   html | json

geometries

The array of geometries to be generalized. The spatial reference of the geometries is specified by sr. The structure of each geometry in the array is the same as the structure of the JSON geometry objects returned by the ArcGIS REST API.

JSON structures:

Syntax:

{
  "geometryType" : "<esriGeometryPolyline | esriGeometryPolygon>"
  "geometries" : [ <geometry1>, <geometry1>, ..., <geometryN> ]
}

The geometries property is an array of input geometries. All geometries in this array should be of the type defined by the geometryType property.

Example:

{
  "geometryType" : "esriGeometryPolyline",
    "geometries" : 
  [
    {
      "paths" : 
      [
        [[-117,34],[-116,34],[-117,33]],
        [[-115,44],[-114,43],[-115,43]]
      ]
    },
    {
      "paths" : 
      [
        [[32,17],[31,17],[30,17],[30,16]]
      ]
    }
  ]
}

sr

The well-known ID (WKID) or a spatial reference JSON object for the input geometries. For a list of valid WKID values, see Projected coordinate systems and Geographic coordinate systems.

maxDeviation

maxDeviation sets the maximum allowable offset, which will determine the degree of simplification. This value limits the distance the output geometry can differ from the input geometry.

deviationUnit

(Optional)

A unit for maximum deviation. If a unit is not specified, the units are derived from sr. For a list of valid units, see esriSRUnitType Constants and esriSRUnit2Type Constants.

Example usage

In this example, a polygon is generalized.

https://sampleserver6.arcgisonline.com/arcgis/rest/services/Utilities/Geometry/GeometryServer/generalize?sr=4326&geometries={"geometryType":"esriGeometryPolygon","geometries":[{"rings":[[[-87,40],[-87.1,40.3],[-87.2,40.5],[-87.2,40.6],[-86.8,40.6],[-86.7,40.6],[-86.7,40.4],[-86.7,40.2],[-87,40]]]}]}&maxDeviation=20&deviationUnit=9035

JSON Response syntax

{
  "geometryType" : "<esriGeometryPoint | esriGeometryMultipoint | esriGeometryPolyline | esriGeometryPolygon>"
  "geometries" : [ <geometry1>, <geometry1>, ..., <geometryN> ]
}

JSON Response example

{
 "geometryType": "esriGeometryPolygon",
 "geometries": [{"rings": [[
  [
   -87,
   40
  ],
  [
   -87.2,
   40.6
  ],
  [
   -86.7,
   40.6
  ],
  [
   -87,
   40
  ]
 ]]}]
}