import AggregateField from "@arcgis/core/layers/support/AggregateField.js";const AggregateField = await $arcgis.import("@arcgis/core/layers/support/AggregateField.js");- Inheritance:
- AggregateField→
Accessor
- 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.
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
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| properties | | |
Properties
| Property | Type | Class |
|---|---|---|
| | ||
declaredClass readonly inherited | ||
| | ||
| | ||
| | ||
| | ||
"avg" | "avg_angle" | "sum" | "mode" | "count" | "min" | "max" | |
isAutoGenerated
- 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
- 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 binaggregateField.name = "SUM_population"; onStatisticExpression
- 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
- 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
- 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
| Value | Description |
|---|---|
avg | The average of values in the aggregate. Only available for fields and expressions that return numbers. |
count | The total number of features in the aggregate. A field does not need to be specified in this case. |
max | The maximum of all values in the aggregate. Only available for fields and expressions that return numbers. |
min | The minimum of all values in the aggregate. Only available for fields and expressions that return numbers. |
mode | The most common or predominant value in the aggregate. Available for fields and expressions that return numbers or strings. |
sum | The 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
fromJSON
- Signature
-
fromJSON (json: any): any
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
| Parameter | Type | Description | Required |
|---|---|---|---|
| json | 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
- 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 objectconst sumPopulationField = layer.featureReduction.fields.find( field => field.name === "SUM_population" ).clone(); toJSON
- Signature
-
toJSON (): any
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.