dojo.require("esri.plugins.FeatureLayerStatistics")
Description
(Added at v3.13)
This module defines a class and a feature layer plugin that is used to calculate feature layer statistics. The return value of this module is a class, but the class has static functions that allows it to be added as a plugin to a feature layer. When this module is added as a plugin, it adds an instance of the class as a new property to the feature layer called
stats
.
require([ "esri/layers/FeatureLayer" ], function(FeatureLayer) {
var featureLayer = new FeatureLayer("//services.arcgis.com/V6ZHFr6zdgNZuVG0/ArcGIS/rest/services/USA_Counties/FeatureServer/0");
featureLayer
.addPlugin("esri/plugins/FeatureLayerStatistics")
.then(function() {
featureLayer
.statisticsPlugin
.getUniqueValues({ field: "STATE_NAME" })
.then(function(result) {
console.log("Unique values: ", result.uniqueValueInfos);
});
});
});
Samples
Search for
samples that use this class.
Constructors
Methods
Constructor Details
Creates a new object that is used to calculate statistics about features in a feature layer.
Parameters:
<Object > params 
Required 
Parameters that define the FeatureLayerStatistics . See params table below for details. 
params
properties:
<FeatureLayer > layer 
Required 
The feature layer that will be the source for calculating statistics. 
Method Details
This function is called internally when the plugin is added to a feature layer.
Note: This is a static method.
Calculate class breaks for data stored in the given field. See the
Object Specifications table below for the structure of the
params
object and
Promise
.
Parameters:
<Object > params 
Required 
See the Object Specifications table below for the structure of the params object. 
Object Specifications: <params
>
<String > classificationMethod 
Optional 
Indicates the classification method used to create the class breaks. The following methods are supported: equalinterval , naturalbreaks , quantile and standarddeviation . Default is equalinterval . 
<String > field 
Required 
Name of the attribute field. 
<String > normalizationField 
Optional 
Name of the attribute field used to normalize the data. Applicable only when normalizationType is field . 
<String > normalizationType 
Optional 
Indicates how data values are normalized. The following types are supported: field , log , percentoftotal . When normalized using a field, you need to specify normalizationField . 
<Number > numClasses 
Optional 
Number of class breaks. Ignored when classificationMethod is standarddeviation . Default is 5 . 
<Number > standardDeviationInterval 
Optional 
Standard deviation interval. The following values are supported: 1 , 0.5 , 0.33 and 0.25 . Applicable only when classificationMethod is standarddeviation . 
<String > valueExpression 
Optional 
An Arcade expression evaluating to a number. This expression can reference field values using the $feature global variable and perform mathematical calculations and logical evaluations at runtime. The class breaks returned from this method are generated from the values returned from the Arcade expression. When a valueExpression is provided the field option is not needed. 
<Promise
>
<Object[] > classBreakInfos 

An array of objects each describing a class break. Each object will have the following properties: minValue , maxValue . Additionally, the following properties are available when classificationMethod is standarddeviation : minStdDev , maxStdDev and hasAvg . 
<Number > maxValue 

Maximum value used for class breaks. 
<Number > minValue 

Minimum value used for class breaks. 
<Number > normalizationTotal 

Sum of all data values used to normalize data. Available only when normalizationType is percentoftotal . 
<Boolean > partialData 

Indicates that statistics were generated for a subset, or sampling, of features on the client rather than queried against the service. 
Calculate basic statistics for data stored in the given field. The following statistics are supported:
min
,
max
,
count
,
sum
,
avg
,
stddev
,
variance
. See the
Object Specifications table below for the structure of the
params
object and
Promise
.
Parameters:
<Object > params 
Required 
See the Object Specifications table below for the structure of the params object. 
Object Specifications: <params
>
<String > field 
Required 
Name of the attribute field. 
<String > sqlExpression 
Optional 
A SQL expression evaluating to a number. When a sqlExpression is provided, an equivalent valueExpression is required and the field option is not needed. The logic of the valueExpression must match the logic of the sqlExpression. 
<String > sqlWhere 
Optional 
A SQL where clause used to filter features for the statistics query. For example, this is useful in situations where you want to avoid dividing by zero as is the case with creating a predominance visualization. 
<String > valueExpression 
Optional 
An Arcade expression evaluating to a number. This expression can reference field values using the $feature global variable and perform mathematical calculations and logical evaluations at runtime. The statistics returned from this method are generated from the values returned from this Arcade expression. When a valueExpression is provided the field option is not needed.

<Promise
>
<Number > avg 

The average of all the values contained in the attribute field. 
<Number > count 

The number of records associated with the attribute field. 
<Number > max 

The maximum value contained in the attribute field. 
<Number > min 

The minimum value contained in the attribute field. 
<Boolean > partialData 

Indicates that statistics were generated for a subset, or sampling, of features on the client. 
<Number > stddev 

The standard deviation of the values contained in the attribute field. A statistical measure of the spread of values from their mean, calculated as the square root of the sum of the squared deviations from the mean value, divided by the number of elements minus one. The standard deviation for a distribution is the square root of the variance. 
<Number > sum 

The sum of all the values contained in the attribute field. 
<Number > variance 

The variance of the values contained in the attribute field. A numeric description of how values in a distribution vary or deviate from the mean. The larger the variance, the greater the dispersion of values around the mean. The standard deviation for a distribution is the square root of the variance. 
Calculate heatmap statistics. The following statistics are supported:
min
,
max
,
avg
,
stddev
. See the
Object Specifications table below for the structure of the
params
object and
Promise
.
Parameters:
<Object > options 
Optional 
See the Object Specifications table below for the structure of the options object. 
Object Specifications: <options
>
<Number > blurRadius 
Optional 
Radius (in pixels) around each point over which the majority of the intensity value calculated for that point is spread out. Default is 10 . 
<String > field 
Optional 
Name of the attribute field used to calculate the weighted intensity of each point. When an attribute field is not specified, each point will have the same intensity value. 
<Promise
>
<Number > avg 

The average of all the values contained in the attribute field. 
<Number > max 

The maximum value contained in the attribute field. 
<Number > min 

The minimum value contained in the attribute field. 
<Number > stddev 

The standard deviation of the values contained in the attribute field. A statistical measure of the spread of values from their mean, calculated as the square root of the sum of the squared deviations from the mean value, divided by the number of elements minus one. The standard deviation for a distribution is the square root of the variance. 
Calculate histogram for data stored in the given field. See the
Object Specifications table below for the structure of the
params
object and
Promise
.
Parameters:
<Object > params 
Required 
See the Object Specifications table below for the structure of the params object. 
Object Specifications: <params
>
<String > classificationMethod 
Optional 
Indicates the classification method used to divide the range of values into bins. The following methods are supported: equalinterval , naturalbreaks , quantile and standarddeviation . Default is equalinterval . 
<String > field 
Required 
Name of the attribute field. 
<String > normalizationField 
Optional 
Name of the attribute field used to normalize the data. Applicable only when normalizationType is field . 
<String > normalizationType 
Optional 
Indicates how data values are normalized. The following types are supported: field , log , percentoftotal . When normalized using a field, you need to specify normalizationField . 
<Number > numBins 
Optional 
Number of bins in the histogram. Ignored when classificationMethod is standarddeviation . Default is 10 . 
<String > sqlExpression 
Optional 
A SQL expression evaluating to a number. When a sqlExpression is provided, an equivalent valueExpression is required and the field option is not needed. The logic of the valueExpression must match the logic of the sqlExpression. 
<String > sqlWhere 
Optional 
A SQL where clause used to filter features in the histogram. For example, this is useful in situations where you want to avoid dividing by zero as is the case with creating a predominance visualization. 
<Number > standardDeviationInterval 
Optional 
Standard deviation interval. The following values are supported: 1 , 0.5 , 0.33 and 0.25 . Applicable only when classificationMethod is standarddeviation . 
<String > valueExpression 
Optional 
An Arcade expression evaluating to a number. This expression can reference field values using the $feature global variable and perform mathematical calculations and logical evaluations at runtime. The values returned from this expression are the data used to create the histogram. When a valueExpression is provided the field option is not needed. 
<Promise
>
<Object[] > bins 

Bins in the histogram. It contains the number of features that fall into each of the disjoint categories in the histogram. It is an array objects where each object has the following properties: count , minValue , maxValue . 
<Number > maxValue 

Maximum value captured by the histogram. 
<Number > minValue 

Minimum value captured by the histogram. 
<Number > normalizationTotal 

Sum of all data values used to normalize data. Available only when normalizationType is percentoftotal . 
<Boolean > partialData 

Indicates that statistics were generated for a subset, or sampling, of features on the client. 
Get a random sampling of features in this layer. See the
Object Specifications table below for the structure of the
params
object and
Promise
.
Parameters:
<Object > options 
Optional 
See the Object Specifications table below for the structure of the options object. 
Object Specifications: <options
>
<Number > sampleSize 
Optional 
Number of features to retrieve. Default is 500 
<Promise
>
<Graphic[] > features 

An array of Graphic objects that represent the requested sampleSize . 
Returns a promise that resolves to an object containing spatial statistics for an array of input features. The type of statistics returned varies depending on the geometry of the layer's features.
For input point and multipoint features, see the pointStats object specification table below for a description of the return object. Each point in a multipoint feature is considered a separate point for distance calculation.
For input polyline features, see the polylineStats object specification table below for a description of the return object. The length of a multipart polyline feature is the sum of the length of each of its paths.
For input polygon features, see the polygonStats object specification table below for a description of the return object. The size of each polygon is approximate and is calculated by multiplying the width and the height of its extent and dividing by two.
(Added at v3.16) Parameters:
<Object > params 
Required 
See the Object Specifications table below for the structure of the params object. 
Object Specifications: <params
>
<Graphic[] > features 
Required 
The input graphics from which to calculate spatial statistics. 
<pointStats
>
<number > avgMaxDistance 
Required 
Distance between each point and its farthest point, averaged over all points in the input features. 
<number > avgMinDistance 
Required 
The distance between each point and its closest point, averaged over all points in the input features. 
<number > maxDistance 
Required 
Distance between the two farthest points in the input features. 
<number > minDistance 
Required 
Distance between the two closest points in the input features. 
<polygonStats
>
<number > avgSize 
Required 
Average size of all polygons in the input features. 
<number > maxSize 
Required 
Approximate size of the largest polygon in the input features. 
<number > minSize 
Required 
Approximate size of the smallest polygon in the input features. 
<polylineStats
>
<number > avgLength 
Required 
Average length of all lines in the input features. 
<number > maxLength 
Required 
Length of the longest line in the input features. 
<number > minLength 
Required 
Length of the shortest line in the input features. 
Find optimal scale range for viewing this layer. See the
Object Specifications table below for the structure of the
params
object and
Promise
.
Parameters:
<Object > options 
Optional 
See the Object Specifications table below for the structure of the options object. 
Object Specifications: <options
>
<Number > sampleSize 
Optional 
Number of features used for calculating the scale range. Default is 500 . 
<Promise
>
<Number > maxScale 

Suggested maximum scale for the layer. 
<Number > minScale 

Suggested minimum scale for the layer. 
Find unique values available for the given field. See the
Object Specifications table below for the structure of the
params
object and
Promise
.
Parameters:
<Object > params 
Required 
See the Object Specifications table below for the structure of the params object. 
Object Specifications: <params
>
<String > field 
Required 
Name of the attribute field. 
<String > valueExpression 
Optional 
An Arcade expression evaluating to a number or a string. This expression can reference field values using the $feature global variable and perform mathematical calculations and logical evaluations at runtime. The unique values returned from this method are gathered from the values returned from this expression. When a valueExpression is provided the field option is not needed. 
<Promise
>
<Boolean > partialData 

Indicates that statistics were generated for a subset, or sampling, of features on the client rather than queried against the service. 
<Object[] > uniqueValueInfos 

An array of objects each describing a unique value. Each object will have the following properties: value , count . 
This function is called internally when the plugin is removed from a feature layer.
Note: This is a static method.
Parameters:
<FeatureLayer > layer 
Required 
The target FeatureLayer that will have the plugin removed. 