Create buffers

A buffer analysis resulting in a new layer with 1000 feet areas around high schools.

What is a buffer analysis?

A buffer analysis is the process of creating an area at a distance around a point, line, or polygon feature. To execute the analysis, use the spatial analysis service and the CreateBuffers operation.

create buffers

Real-world examples of this analysis include the following:

  • Creating a buffer around schools.
  • Creating a buffer around transit lines.
  • Generating a buffer around points of interest.

After calculating a buffer area, you can use the resulting polygon for further analysis to answer questions such as: how many points of interest are within a mile of a specific location, or what buildings are within 500 feet of a school?

How to create a buffer

The general steps to create a buffer are as follows:

  1. Review the parameters for the CreateBuffers operation.
  2. Send a request to get the spatial analysis service URL.
  3. Execute a job request with the following URL and parameters:
    • URL: https://<YOUR_ANALYSIS_SERVICE>/arcgis/rest/services/tasks/GPServer/CreateBuffers/submitJob
    • Parameters:
      • inputLayer: Your points dataset as a hosted feature layer or feature collection.
      • distances or field: The value containing the buffer distance. Use distances if you want multiple distances with which to calculate buffers.
      • outputName: A string representing the name of the hosted feature layer to reutrn with the results.
  4. Check the status.
  5. Get the output layer results.

To see examples using ArcGIS API for Python, ArcGIS REST JS, and the ArcGIS REST API, go to Examples below.

URL request

Use dark colors for code blocksCopy
1
http://<YOUR_ANALYSIS_SERVICE>/arcgis/rest/services/tasks/GPServer/CreateBuffers/submitJob?<parameters>

Required parameters

NameDescriptionExamples
fThe format of the data returned.f=json f=pjson
tokenAn OAuth 2.0 access token. Learn how to get an access token in Security and authentication.token=<ACCESS_TOKEN>
inputLayerThe point, line, or polygon features to be buffered.{"url":"https://services3.arcgis.com/GVgbJbqm8hXASVYi/arcgis/rest/services/Police_Stations/FeatureServer/0","name":"Police Stations"}
distancesIf not using field. The value with which the buffer will be calculated.1
fieldIf not using distances. A field within the inputLayer containing a buffer distance.ATTRIBUTE_FIELD

Key parameters

NameDescriptionExamples
unitsThe unit to be used with the specified distance values.Meters, Kilometers, Miles
dissolveTypeDetermines whether overlapping buffers are split, dissolved, or kept.None, Dissolve, Split
outputNameA string representing the name of the hosted feature layer to return with the results. NOTE: If you do not include this parameter, the results are returned as a feature collection (JSON).{"serviceProperties": {"name": "<SERVICE_NAME>"}}
contextA bounding box or output spatial reference for the analysis."extent":{"xmin:", "ymin:", "xmax:", "ymax:"}

Code examples

Bike routes (lines)

This example uses the CreateBuffers operation to create areas 200 feet around bike routes.

Buffer analysis showing 200 ft areas around bike routes.

APIs

ArcGIS API for PythonArcGIS API for PythonArcGIS REST JS
Expand
Use dark colors for code blocksCopy
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
input_layer = "https://services3.arcgis.com/GVgbJbqm8hXASVYi/arcgis/rest/services/Portland%20Bike%20Routes/FeatureServer/0"

results = create_buffers(
    input_layer=input_layer,
    dissolve_type="Dissolve",
    distances=[200],
    units="Feet",
    ring_type="Rings",
    context={
        "extent": {
            "xmin": -13727534.4477,
            "ymin": 5604395.5062,
            "xmax": -13547856.7377,
            "ymax": 5741928.7477,
            "spatialReference": {"wkid": 102100},
        }
    },
    #Outputs results as a hosted feature layer.
    output_name="Create buffer results"
)

Service requests

Request
HTTPHTTPcURL
Use dark colors for code blocksCopy
1
2
3
4
5
POST arcgis.com/sharing/rest/portals/self HTTP/1.1
Content-Type: application/x-www-form-urlencoded

&f=json
&token=<ACCESS_TOKEN>
Response (JSON)
Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
{
  "helperServices": {
    // Other parameters
    "analysis": {
      "url": "https://<YOUR_ANALYSIS_SERVICE>/arcgis/rest/services/tasks/GPServer"
    },
    "geoenrichment": {
      "url": "https://geoenrich.arcgis.com/arcgis/rest/services/World/GeoenrichmentServer"
    }
  }
}

Recreational parcels (polygons)

This example uses the CreateBuffers operation to create areas one mile around recreational parcels in the Santa Monica Mountains Parcels hosted feature layer.

Buffer analysis showing 1 mile areas around recreational parcels.

APIs

ArcGIS API for PythonArcGIS API for PythonArcGIS REST JS
Expand
Use dark colors for code blocksCopy
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
input_layer = "https://services3.arcgis.com/GVgbJbqm8hXASVYi/arcgis/rest/services/Santa_Monica_Mountains_Parcels/FeatureServer/0/query?where=UseType='Recreational'"

results = create_buffers(
    input_layer=input_layer,
    dissolve_type="Dissolve",
    distances=[1],
    units="Miles",
    ring_type="Rings",
    context={
        "extent": {
            "xmin": -13241162.787695415,
            "ymin": 4029393.2145536076,
            "xmax": -13208887.252502043,
            "ymax": 4049992.993676435,
            "spatialReference": {"wkid": 102100},
        }
    },
    #Outputs results as a hosted feature layer.
    output_name="Create buffer results"
)

Service requests

Request
HTTPHTTPcURL
Use dark colors for code blocksCopy
1
2
3
4
5
POST arcgis.com/sharing/rest/portals/self HTTP/1.1
Content-Type: application/x-www-form-urlencoded

&f=json
&token=<ACCESS_TOKEN>
Response (JSON)
Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
{
  "helperServices": {
    // Other parameters
    "analysis": {
      "url": "https://<YOUR_ANALYSIS_SERVICE>/arcgis/rest/services/tasks/GPServer"
    },
    "geoenrichment": {
      "url": "https://geoenrich.arcgis.com/arcgis/rest/services/World/GeoenrichmentServer"
    }
  }
}

Tutorials

Learn how to perform related analyses interactively with Map Viewer and programmatically with ArcGIS API for Python, ArcGIS REST JS, and ArcGIS REST API.

Services

Spatial analysis service

Process spatial datasets to discover relationships and patterns.

API support

Create buffersCreate centroidsGenerate tessellations
ArcGIS Maps SDK for JavaScript111
ArcGIS Maps SDK for .NET
ArcGIS Maps SDK for Kotlin
ArcGIS Maps SDK for Swift
ArcGIS Maps SDK for Java
ArcGIS Maps SDK for Qt
ArcGIS API for Python
ArcGIS REST JS111
Esri Leaflet222
MapBox GL JS222
OpenLayers222
Full supportPartial supportNo support
  • 1. Access with geoprocessing task
  • 2. Access via ArcGIS REST JS

Tools

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