Binning - basic configuration

Explore in the sandboxView live

This sample demonstrates how to enable binning on a FeatureLayer. Binning is a method of aggregating points in a FeatureLayer, CSVLayer, GeoJSONLayer, WFSLayer, or OGCFeatureLayer by grouping them in predefined bins. Bins are generated using geohashes.

Binning is configured on the featureReduction property of the layer. This property allows you to define a renderer, popupTemplate and labels that summarize the features that fall within each bin's boundaries. Bins do not have a default renderer, so you must define a renderer to see the bins.

Configure binning
Use dark colors for code blocksCopy
56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
      const featureReduction = {
        type: "binning",
        fixedBinLevel: 6,
        labelsVisible: true,
        labelingInfo: [
          new LabelClass({
            minScale: 144448,
            maxScale: 0,
            deconflictionStrategy: "none",
            symbol: {
              type: "text",  // autocasts as new TextSymbol()
              color: "white",
              font: {
                family: "Noto Sans",
                size: 10,
                weight: "bold"
              },
              haloColor: colors[4],
              haloSize: 0.5
            },
            labelExpressionInfo: {
              expression: "Text($feature.aggregateCount, '#,###')"
            }
          })
        ],
        popupEnabled: true,
        popupTemplate: {
          title: "Car crashes",
          content: "{aggregateCount} car crashes occurred in this area."
        },
        renderer: {
          type: "simple",
          symbol: {
            type: "simple-fill",
            color: [0, 255, 71, 1],
            outline: null,
            outline: {
              color: "rgba(153, 31, 23, 0.3)",
              width: 0.3,
            },
          },
          visualVariables: [
            {
              type: "color",
              field: "aggregateCount",
              legendOptions: {
                title: "Number of crashes"
              },
              stops: [
                { value: 0, color: colors[0] },
                { value: 25, color: colors[1] },
                { value: 75, color: colors[2] },
                { value: 200, color: colors[3] },
                { value: 300, color: colors[4] }
              ]
            }
          ]
        }
      };

Binning only applies to layers with point geometries in a MapView.

Binning versus clustering

Conceptually, binning is very similar to clustering. Both, in addition to heatmaps, are methods for visualizing densities of points. The following are key differences to consider when choosing a method of feature reduction.

Clustering

Clustering aggregates points into clusters that don't communicate a definite boundary between clusters. The region that each cluster uses to aggregate points varies depending on the density and dispersion of points. One cluster may aggregate points from an area much larger than a neighboring cluster.

The style of a cluster, it's size and color, are predetermined by the rendering engine and effectively summarize the underlying point data making up the cluster. This style cannot be modified.

Clusters dynamically explode to smaller clusters as the user zooms in and coalesce to larger clusters as the user zooms out.

Binning

Bins aggregates points into geohashes of equal area and size. The boundaries are discrete and obvious so there is no ambiguity to the area used to aggregate points to bins.

Bins can be styled in the same way a layer can be styled. You can use aggregate fields to style the bins using any renderer that can be applied to a polygon FeatureLayer.

Bins are static and do not regenerate as the user zooms in and out in the map.

Image preview of related sample Binning with aggregate fields

Binning with aggregate fields

This sample demonstrates how to define aggregate fields that can be used in the popup, labels, and renderer of a binned layer.

Image preview of related sample Binning - Filter by category

Binning - Filter by category

Demonstrates how to filter binned data by category.

Image preview of related sample Summarize binned data using Arcade

Summarize binned data using Arcade

Use Arcade in popups to summarize binned crimes by type

Image preview of related sample Point clustering - basic configuration

Point clustering - basic configuration

Point clustering - basic configuration

FeatureReductionBinning

Read the API Reference for more information.

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