Clustering spatially groups nearby features into "clusters" or "aggregates" in screen space. This is a visualization-only feature intended solely for reducing the visual clutter of many overlapping features to a simplified view of a few aggregate features that communicate patterns of density. This is not intended to be used for analytical purposes. Clustering is not appropriate for all datasets. Therefore, it is important to consider the implications of clustering based on geometry type, data distribution, and the purpose of the visualization. Clients that implement a UX or an API for clustering should clearly document when it is appropriate and when it is not.
Referenced by: Feature Reduction
Properties
Property | Details |
---|---|
clusterMaxSize | Size of the largest cluster, in screen units (points). |
clusterMinSize | Size of the smallest cluster, in screen units (points). |
clusterRadius | Strength of clustering, in screen units (points). |
disablePopup | Indicates whether to disable viewing popups defined for the clusters. |
drawingInfo | Contains labeling and rendering information for the cluster. |
fields[] | An array of objects defining the aggregate fields to use in cluster popups, labels, and explicit renderers. |
popupInfo | Defines the popup used to describe aggregate data in the selected cluster. |
showLabels | Defines whether labels should be shown in the clusters. |
type | Type of feature reduction. Valid value of this property cluster |
visibilityInfo | Defines the threshold for toggling between when a layer should be drawn using the feature reduction configuration versus the layer's drawing info. |
Clustered layer defined with a popup and labels Example
{
"type": "cluster",
"clusterRadius": 75,
"clusterMinSize": 18,
"clusterMaxSize": 45,
"popupInfo": {
"description": "This cluster represents {cluster_count} features.",
"fieldInfos": [
{
"fieldName": "cluster_count",
"format": {
"digitSeparator": true,
"places": 0
},
"visible": false
}
],
"title": ""
},
"drawingInfo": {
"labelingInfo": [
{
"deconflictionStrategy": "none",
"labelExpressionInfo": {
"expression": "Text($feature.cluster_count, '#,###')"
},
"labelPlacement": "esriServerPointLabelPlacementCenterCenter",
"symbol": {
"type": "esriTS",
"color": [
0,
74,
93,
255
],
"font": {
"family": "Noto Sans",
"size": 9,
"weight": "bold"
},
"horizontalAlignment": "center",
"kerning": true,
"rotated": false,
"text": "",
"xoffset": 0,
"yoffset": 0,
"angle": 0
}
}
]
},
"showLabels": true,
"disablePopup": false,
"visibilityInfo": {
"maxScale": 24000,
"type": "scale"
}
}