Skip To Content
ArcGIS Developer

Generate Tessellations

Generate Tessellations

The GenerateTessellations task creates tessellations, or bins, determined by a specified extent, shape, and size.

For example, for reforestation projects, foresters need to divide harvested areas into bins, or regularly shaped areas, to understand the amount of seedlings and resources needed to reforest the area effectively. The GenerateTessellations task can be used to automatically create a dataset of appropriately sized bins for the full study area.

Request URL

http://<analysis url>/GenerateTessellations/submitJob

Request parameters




Specifies the tessellation shape. Bin options are as follows:

  • Diamond
  • Hexagon
  • Square—This is the default.
  • TransverseHexagon
  • Triangle
  • H3_Hexgon—Available in ArcGIS Online and ArcGIS Enterprise 11.2 or later.

Example: "binType" : "Hexagon"


Required if binType is not H3_Hexgon

The size of each bin. Cell size can be determined by specifying square units or by specifying a distance that is calculated using the following measurements in which d = Distance:


Square Tessellation


Hexagon Tessellation

Transverse Hexagon

Transverse Hexagon Tessellation


Triangle Tessellation


Diamond Tessellation

Example: "binSize" : 100


Required if binType is not H3_Hexgon

Specifies the linear or areal unit to be used with the value specified in binSize.

Values: Meters | Kilometers | Feet | Miles | NauticalMiles | Yards | SquareKilometers | Hectares | SquareMeters | SquareMiles | Acres | SquareYards | SquareFeet | SquareInches

The default is SquareKilometers.

Example: "binSizeUnit" : "Miles"


The extent that the tessellations will cover.

Syntax: As described in detail in the Feature input topic, this parameter can be one of the following:

  • A URL to a feature service layer with an optional filter to select specific features
  • A feature collection


  • {"url": <feature service layer url>, "filter": <where clause>}
  • {"layerDefinition": {}, "featureSet": {}, "filter": <where clause>}


A Boolean value that specifies whether only tessellations that intersect with the extent layer (extentLayer) will be kept. The default is false.

This parameter is only applied if an extent layer has been provided.


Full Extent Coverage


Feature Coverage

Values: true | false


Required if binType is H3_Hexgon

The H3 resolution of the tessellations. The resolution can range from 0 to 15. With each increasing resolution size, the area of the polygons will decrease to one-seventh the size at the lower resolution.

Learn more about H3 resolution

This parameter is available in ArcGIS Online and ArcGIS Enterprise11.2 or later.

REST examples

//REST scripting example
"binResolution": 2


If provided, the task will create a feature service of the results. You define the name of the service. If an outputName value is not provided, the task will return a feature collection.


  "serviceProperties": {
    "name": "<service name>"
In ArcGIS Online or ArcGIS Enterprise 10.9.1 and later, you can overwrite an existing feature service by providing the itemId value of the existing feature service and setting the overwrite property to True. Including the serviceProperties parameter is optional. As described in the Feature output topic, you must either be the owner of the feature service or have administrative privileges to perform the overwrite.



  "itemProperties": {
			"itemId": "<itemID of the existing feature service>",
			"overwrite": True
"serviceProperties": {
    "name": "<existing service name>"
"itemProperties": {
				"itemId": "<itemID of the existing feature service>",
				"overwrite": True


The Context parameter contains the following additional settings that affect task operation:

  • Extent (extent)—A bounding box that defines the analysis area. Only input features that intersect the bounding box will be analyzed.
  • Output spatial reference (outSR)—The output features will be projected into the output spatial reference.


"extent" : {extent},
"outSR" : {spatial reference}


The response format. The default response format is html.

Values: html | json


When you submit a request, the service assigns a unique job ID for the transaction.

"jobId": "<unique job identifier>",
"jobStatus": "<job status>"

After the initial request is submitted you can use the jobId value to periodically check the status of the job and messages as described in the Checking job status topic. Once the job has successfully completed, use the jobId value to retrieve the results. To track the status, you can make a request of the following form:

http://<analysis url>/GenerateTessellations/jobs/<jobId>

Access results

When the status of the job request is esriJobSucceded, you can access the results of the analysis by making a request of the following form:

http://<analysis url>/GenerateTessellations/jobs/<jobId>/results/<output parameter name>?token=<your token>&f=json



tessellationLayer will always contain polygon features.

Request example:
"http://<analysis url>/GenerateTessellations/jobs/<jobId>/results/tessellationLayer"}

The result has properties for parameter name, data type, and value. The contents of value depend on the outputName parameter value provided in the initial request.

  • If an outputName value was provided, value contains the URL to the feature service layer.
    "value":{"url":"<hosted featureservice layer url>"}
  • If no outputName value was provided, value contains a feature collection.
    "value":{"layerDefinition": {}, "featureSet": {}  }

See Feature output for more information about how the result layer or collection is accessed.