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

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
token

An (API key or OAuth 2.0) with the required Spatial Analysis > Feature analysis privilege.

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

Schools (points)

This example uses the CreateBuffers operation to create areas 1000 feet around schools.

Buffer analysis showing 1000 ft areas around schools.

APIs

ArcGIS API for PythonArcGIS API for PythonArcGIS REST JS
Expand
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
input_layer = "https://services3.arcgis.com/GVgbJbqm8hXASVYi/arcgis/rest/services/DeriveHighSchools/FeatureServer"

results = create_buffers(
    input_layer=input_layer,
    dissolve_type=None,
    distances=[1000],
    units="Feet",
    ring_type="Rings",
    # Outputs results as a hosted feature layer.
    output_name="Schools buffer results PYTHON",
)

Service requests

Request
HTTPHTTPcURL
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)
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"
    }
  }
}

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

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