fieldUtils
require(["esri/layers/support/fieldUtils"], function(fieldUtils) { /* code goes here */ });
esri/layers/support/fieldUtils
Convenience methods for getting field names used for feature layer labeling, elevation, editor tracking and time span.
Method Overview
Name | Return Type | Summary | Object | |
---|---|---|---|---|
String | Gets the appropriate display field name to label a feature. more details | more details | fieldUtils | |
Promise<string[]> | Returns an array of field names used in the Arcade expression for calculating the z-values of features in the given feature layer's FeatureLayer.elevationInfo. more details | more details | fieldUtils | |
Promise<string[]> | Returns an array of field names referenced in one or more Arcade expressions to be set on the given layer in either the | more details | fieldUtils | |
String[] | Returns an array of editor tracking field names for a given feature layer. more details | more details | fieldUtils | |
Promise<string[]> | Returns an array of field names used in the Arcade expression for labeling features in the given feature layer's FeatureLayer.labelingInfo. more details | more details | fieldUtils | |
Promise<string[]> | Returns an array of field names related to time. more details | more details | fieldUtils |
Method Details
- getDisplayFieldName(fields){String}Since: ArcGIS API for JavaScript 4.15
Gets the appropriate display field name to label a feature.
Parameter:An array of fields to determine the display field from.
Returns:Type Description String The name of the display field to use for labeling.
Returns an array of field names used in the Arcade expression for calculating the z-values of features in the given feature layer's FeatureLayer.elevationInfo.
Parameter:layer FeatureLayerThe featureLayer to extract fields required for calculating feature z-values.
Returns:Type Description Promise<string[]> When resolved, returns an array of field names.
- Since: ArcGIS API for JavaScript 4.15
Returns an array of field names referenced in one or more Arcade expressions to be set on the given layer in either the
renderer
,labelingInfo
, orpopupTemplate
. This is useful for when you want to request the data for these fields prior to updating a renderer for fast visual updates or when you want to execute a client-side query on that data prior to setting the Arcade expressions on the layer.Parameters:The layer for which the Arcade
expressions
are authored. This layer must have afields
property.An array of Arcade expressions to be set on the given
layer
.Returns:Type Description Promise<string[]> Returns an array of field names declared either by the $feature.fieldName
or$feature[fieldName]
syntax.- See also:
Example:const windDirectionExpression = ` $feature["WIND_DIRECT"]; $feature["WIND_SPEED"]; var DEG = $feature.WIND_DIRECT; var SPEED = $feature.WIND_SPEED; var DIR = When( SPEED == 0, "", (DEG < 22.5 && DEG >= 0) || DEG > 337.5, "N", DEG >= 22.5 && DEG < 67.5, "NE", DEG >= 67.5 && DEG < 112.5, "E", DEG >= 112.5 && DEG < 157.5, "SE", DEG >= 157.5 && DEG < 202.5, "S", DEG >= 202.5 && DEG < 247.5, "SW", DEG >= 247.5 && DEG < 292.5, "W", DEG >= 292.5 && DEG < 337.5, "NW", "" ); return SPEED + " mph " + DIR; `; const labelExpressions = [ "Round($feature.TEMP) + '° F';", "$feature.R_HUMIDITY + '% RH'", "$feature.STATION_NAME", windDirectionExpression ]; // Assume the layer has only requested the OBJECTID field fieldUtils.getExpressionFields(layer, labelExpressions) .then(function(fieldNames){ // fieldNames = ["R_HUMIDITY", "STATION_NAME", "TEMP", "WIND_DIRECT", "WIND_SPEED"] layer.outFields = fieldNames; // Do something else like a client-side query with those fields }).catch(function(error){ console.error(error); });
Returns an array of editor tracking field names for a given feature layer. It includes the fields from the FeatureLayer.editFieldsInfo.
Parameter:layer FeatureLayerThe Feature Layer from which to extract editor tracking fields.
Returns:Type Description String[] An array of field names used for editor tracking.
Returns an array of field names used in the Arcade expression for labeling features in the given feature layer's FeatureLayer.labelingInfo.
Parameter:layer FeatureLayerThe Feature Layer from which to extract label fields.
Returns:Type Description Promise<string[]> When resolved, returns an array of field names used for labeling.
Returns an array of field names related to time. It includes the fields from the FeatureLayer.timeInfo, and the
trackIdField
.Parameter:layer FeatureLayerThe Feature Layer from which to extract time fields.
Returns:Type Description Promise<string[]> When resolved, returns an array of time field names.