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

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
token

An access token (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 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

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

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

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