Types
import type { OrderedLayer } from "@arcgis/core/layers/mixins/OrderedLayer.js";- Subclasses:
- CSVLayer, CatalogLayer, FeatureLayer, GeoJSONLayer, OGCFeatureLayer, ParquetLayer, WFSLayer, KnowledgeGraphSublayer
- Since
- ArcGIS Maps SDK for JavaScript 4.21
Mixin for layers that support orderBy.
Properties
| Property | Type | Class |
|---|---|---|
OrderByInfo[] | null | undefined | |
orderBy
autocast
Property
- Type
- OrderByInfo[] | null | undefined
Determines the order in which features are drawn in the view. You can sort features by a field value or the value returned from an Arcade expression in ascending or descending order.
When null (default), features are drawn in the order they are returned from
the service or client.
Known Limitations
- This property only controls feature drawing order in MapView. Configuring feature drawing order in SceneView is not supported.
- This property does not control the drawing order of clusters. It only applies to individual features.
- Feature drawing order configurations defined with Arcade expressions cannot be saved to web maps.
- Currently, you can only sort features by one field or expression.
- See also
Examples
// Features with smaller population values will// be rendered on top of larger features.layer.orderBy = [{ field: "POPULATION"}];// Features with larger population values will// be rendered on top of smaller features.layer.orderBy = [{ field: "POPULATION", order: "descending"}];// Orders features by date in descending order.// The most recent features will be rendered// on top of older features.layer.orderBy = [{ field: "Alarm_Date", order: "descending"}];// Orders features by storm warning duration in descending order.// Warnings with longer durations// be rendered on top of warnings with shorter durations.layer.orderBy = [{ valueExpression: "DateDiff($feature.Watch_End, $feature.Watch_Start, 'hours' )", order: "descending"}];// Orders features by data values used in a size visual variableconst sizeVariable = layer.renderer.visualVariables.find( vv => vv.type === "size");const { field, valueExpression } = sizeVariable;layer.orderBy = [{ field, valueExpression, order: "ascending"}];