Skip to content
import AggregateField from "@arcgis/core/layers/support/AggregateField.js";
Inheritance:
AggregateFieldAccessor
Since
ArcGIS Maps SDK for JavaScript 4.24

Defines the aggregate fields used in a layer visualized with FeatureReductionBinning or FeatureReductionCluster. An aggregate field aggregates data from a layer's field using a statistic type such as the average or sum.

See also
Example
featureReduction.fields = [{
name: "SUM_population",
alias: "Total population",
onStatisticField: "population",
statisticType: "sum"
}, {
name: "AVG_age",
alias: "Average age",
onStatisticField: "age",
statisticType: "avg"
}];

Constructors

Constructor

Constructor
Parameters
ParameterTypeDescriptionRequired
properties
See the properties table for a list of all the properties that may be passed into the constructor.

Properties

Any properties can be set, retrieved or listened to. See the Watch for changes topic.
PropertyTypeClass
declaredClass
readonly inherited
"avg" | "avg_angle" | "sum" | "mode" | "count" | "min" | "max"

alias

Property
Type
string | null | undefined

The display name that describes the aggregate field in the Legend, Popup, and other UI elements.

Example
aggregateField.alias = "Total population";

declaredClass

readonlyinherited Property
Type
string
Inherited from: Accessor

The name of the class. The declared class name is formatted as esri.folder.className.

isAutoGenerated

Property
Type
boolean
Since
ArcGIS Maps SDK for JavaScript 4.25

Indicates whether the field was created internally by the JS API's rendering engine for default FeatureReductionCluster visualizations. You should avoid setting or changing this value. If true, then all other properties of the AggregateField are read-only.

Default value
false

name

Property
Type
string

The name of the aggregate field. This should describe the layer's field and aggregation method used. For example, if creating a field that contains the total population for a set of features with a population field, then you could name this field total_population or population_sum.

This field name must start with a letter, and may only contain alphanumeric characters and underscore.

Example
// names the aggregate field that will display the sum of the population
// for all points representing cities in the bin
aggregateField.name = "SUM_population";

onStatisticExpression

autocast Property
Type
ExpressionInfo
Since
ArcGIS Maps SDK for JavaScript 4.25

An object containing an Arcade expression, which evaluates for each child feature represented by the aggregate graphic. All results of the expression will be aggregated using the given statisticType. This expression must follow the specification defined by the Arcade Visualization Profile. Expressions must return a string or a number and may access data values from the layer's feature with the $feature profile variable.

Example
// will create an aggregate field for the Population field of the layer.
aggregateField.onStatisticExpression = new ExpressionInfo({
title: "Population per square kilometer",
returnType: "number",
expression: "$feature.population / AreaGeodetic($feature, 'square-kilometers')"
});

onStatisticField

Property
Type
string
Since
ArcGIS Maps SDK for JavaScript 4.25

The name of the layer field to summarize with the given statisticType.

Example
// will create an aggregate field for the Population field of the layer.
aggregateField.onStatisticField = "Population";

statisticType

Property
Type
"avg" | "avg_angle" | "sum" | "mode" | "count" | "min" | "max"
Since
ArcGIS Maps SDK for JavaScript 4.25

Defines the type of statistic used to aggregate data returned from onStatisticField or onStatisticExpression.

Possible Values

ValueDescription
avgThe average of values in the aggregate. Only available for fields and expressions that return numbers.
countThe total number of features in the aggregate. A field does not need to be specified in this case.
maxThe maximum of all values in the aggregate. Only available for fields and expressions that return numbers.
minThe minimum of all values in the aggregate. Only available for fields and expressions that return numbers.
modeThe most common or predominant value in the aggregate. Available for fields and expressions that return numbers or strings.
sumThe sum of all values in the aggregate. Only available for fields and expressions that return numbers.
Example
// will calculate the sum of the field specified in onStatisticField for all features in the bin.
outStatistic.statisticType = "sum";

Methods

MethodSignatureClass
fromJSON
inherited static
fromJSON(json: any): any
clone(): AggregateField
toJSON
inherited
toJSON(): any

fromJSON

inheritedstatic Method
Signature
fromJSON (json: any): any
Inherited from: JSONSupportMixin

Creates a new instance of this class and initializes it with values from a JSON object generated from an ArcGIS product. The object passed into the input json parameter often comes from a response to a query operation in the REST API or a toJSON() method from another ArcGIS product. See the Using fromJSON() topic in the Guide for details and examples of when and how to use this function.

Parameters
ParameterTypeDescriptionRequired
json
any

A JSON representation of the instance in the ArcGIS format. See the ArcGIS REST API documentation for examples of the structure of various input JSON objects.

Returns
any

Returns a new instance of this class.

clone

Method
Signature
clone (): AggregateField

Creates a deep clone of the AggregateField object.

Returns
AggregateField

A deep clone of the object that invoked this method.

Example
// Creates a deep clone of the AggregateField object
const sumPopulationField = layer.featureReduction.fields.find( field => field.name === "SUM_population" ).clone();

toJSON

inherited Method
Signature
toJSON (): any
Inherited from: JSONSupportMixin

Converts an instance of this class to its ArcGIS portal JSON representation. See the Using fromJSON() guide topic for more information.

Returns
any

The ArcGIS portal JSON representation of an instance of this class.