Difference

URL:
https://<root>/Utilities/Geometry/GeometryServer/difference
Methods:
GET
Version Introduced:
10.0

Description

The difference operation is performed on a geometry service resource. This operation constructs the set-theoretic difference between each element of an array of geometries and another geometry, the so-called difference geometry. In other words, let B be the difference geometry. For each geometry, A, in the input geometry array, it constructs A - B. This operation calls simplify on the input geometries and geometry values. You can provide arguments to the difference operation as query parameters defined in the following parameters table.

Request parameters

ParameterDetails

geometries

Specifies an array of points, multipoints, polylines, or polygons. The structure of each geometry in the array is the same as the structure of the JSON geometry objects returned by ArcGIS REST API.

Syntax

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

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
  "geometryType": "esriGeometryPolyline",
  "geometries": [
    {
      "paths": [
        [[-117,34],[-116,34],[-117,33]],
        [[-115,44],[-114,43],[-115,43]]
      ]
    },
    {
      "paths": [
        [[32.49,17.83],[31.96,17.59],[30.87,17.01],[30.11,16.86]]
      ]
    }
  ]
}

geometry

Specifies a single geometry of any type and of a dimension equal to or greater than the geometries elements. The structure of the geometry is the same as the structure of the JSON geometry objects returned by ArcGIS REST API. The use of simple syntax is not supported.

Syntax

1
{"geometryType": "<esriGeometryPoint | esriGeometryPolyline | esriGeometryPolygon | esriGeometryMultipoint>","geometry": <geometry1> }

Example

1
2
3
4
5
6
7
8
9
{
  "geometryType": "esriGeometryPolygon",
  "geometry": {
    "rings": [
      [[-117,34],[-116,34],[-117,33],[-117,34]],
      [[-115,44],[-114,43],[-115,43],[-115,44]]
    ]
  }
}

sr

Specifies the well-known ID (WKID) of the spatial reference or a spatial reference JSON object for the input geometries values. For a list of valid WKID values, see Using spatial references.

f

The response format. The default response format is html.

Values: html | json | pjson

Example usage

The following is a decoded sample request URL (the actual URL must be encoded) for difference that constructs the difference between polygons:

https://sampleserver6.arcgisonline.com/arcgis/rest/services/Utilities/Geometry/GeometryServer/difference?sr=4269&geometries={"geometryType":"esriGeometryPolygon","geometries":[{"rings":[[[-75.5,39.7],[-74.7,40.2],[-74.9,39.2],[-75.1,39.1],[-75.5,39.7]]]},{"rings":[[[-75,39.8],[-74,40],[-74.5,39],[-75,39.8]]]}]}&geometry={"geometryType":"esriGeometryPolygon","geometry":{"rings":[[[-75,39.8],[-74,40],[-74.5,39],[-75,39.8]]]}}&f=html

JSON Response syntax

1
2
3
4
{
  "geometryType": "<esriGeometryPoint | esriGeometryMultipoint | esriGeometryPolyline | esriGeometryPolygon >",
  "geometries": [<geometry1>, <geometry2>]
}

JSON Response example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
{
 "geometryType": "esriGeometryPolygon",
 "geometries": [
  {"rings": [[
   [
    -74.89999999999998,
    39.200000000000045
   ],
   [
    -75.09999999999997,
    39.10000000000008
   ],
   [
    -75.49999999999994,
    39.700000000000045
   ],
   [
    -74.69999999999999,
    40.200000000000045
   ],
   [
    -74.77083333299998,
    39.84583333300003
   ],
   [
    -74.99999999999994,
    39.80000000000007
   ],
   [
    -74.83333333299998,
    39.53333333300003
   ],
   [
    -74.89999999999998,
    39.200000000000045
   ]
  ]]},
  {"rings": []}
 ]
}

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.

You can no longer sign into this site. Go to your ArcGIS portal or the ArcGIS Location Platform dashboard to perform management tasks.

Your ArcGIS portal

Create, manage, and access API keys and OAuth 2.0 developer credentials, hosted layers, and data services.

Your ArcGIS Location Platform dashboard

Manage billing, monitor service usage, and access additional resources.

Learn more about these changes in the What's new in Esri Developers June 2024 blog post.

Close