ESM: import TrackInfo from "@arcgis/core/layers/support/TrackInfo.js";
CDN: const TrackInfo = await $arcgis.import("@arcgis/core/layers/support/TrackInfo.js");
Class: @arcgis/core/layers/support/TrackInfo
Since: ArcGIS Maps SDK for JavaScript 4.32
TrackInfo provides information about how to display and analyze temporal data in a layer. This information includes how to render the latest observations, previous observations, and track lines. It also includes information about how to aggregate data and display popups. TrackInfo is used in the StreamLayer and FeatureLayer classes.
Constructors new TrackInfo(properties)
Parameter
optionalSee the properties for a list of all the properties that may be passed into the constructor.
Show inherited properties Hide inherited properties
Property DetailsInherited
Property declaredClass Stringreadonly
The name of the class. The declared class name is formatted as esri.folder.className
.
Indicates whether the track info is enabled.
Example
trackInfo.enabled = false;
Example
// Based on the fields in the layer, the following track info fields
// could be defined:
trackInfo.fields = [{
name: "total_observations",
statisticType: "count"
}, {
name: "AVG_speed",
onStatisticField: "speed",
statisticType: "avg"
}];
Configuration properties for displaying the latest observations.
Example
trackInfo.latestObservations = {
renderer: {
type: "simple",
symbol: {
type: "simple-marker",
style: "circle",
color: "red",
size: 10
}
}
};
The maximum age of displayed observations. Observations older than this will not be displayed. Age is calculated by subtracting the time indicated by trackInfo.timeField from the view.timeExtent.end. For StreamLayer, age is calculated by subtracting the time indicated by trackInfo.timeField from the system time. If no duration is specified, or if its value is 0, then displayed observations will not be limited by age.
Example
trackInfo.maxDisplayDuration = { value: 30, unit: "seconds" };
maxDisplayObservationsPerTrack Number
The maximum number of observations to display per track. If the value is 0, no limit will be imposed.
Example
trackInfo.maxDisplayObservationsPerTrack = 10;
popupEnabled Boolean
Indicates whether to display the popup for the track as defined in the popupTemplate.
Example
trackInfo.popupEnabled = false;
The PopupTemplate to apply to the track. When set, a popupTemplate independent of the layer.popupTemplate is used. This popup can display summary information for each track, such as feature count or any other field defined in fields.
The PopupTemplate may contain one or more Arcade expressions following the specification defined by the Arcade Feature Reduction Popup Profile. Expressions must return a string or a number.
Example
layer.trackInfo = {
fields: [{
name: "avg_speed",
alias: "Average speed",
onStatisticField: "speed",
statisticType: "avg"
}, {
name: "total_observations",
statisticType: "count"
}],
popupTemplate: {
content: [{
type: "text",
text: "This track contains <b>{total_observations}</b> features."
}, {
type: "text",
text: "The average speed in this track is <b>{avg_speed}</b>."
}],
fieldInfos: [{
fieldName: "avg_speed",
format: {
digitSeparator: true,
places: 1
}
}]
}
};
Configuration properties for displaying previous observations.
Example
trackInfo.previousObservations = {
renderer: {
type: "simple",
symbol: {
type: "simple-marker",
style: "circle",
color: "blue",
size: 10
}
}
};
timeField String
Indicates which field from the layer's timeInfo will be used to calculate observation ages for trackInfo.maxDisplayDuration. The timeReceived
option is the system time when the client received the observation, and is only valid for StreamLayer.
Possible Values:"timeReceived" |"startTimeField" |"endTimeField"
Default Value:"startTimeField"
Example
trackInfo.timeField = "timeReceived";
Configuration properties for displaying track lines.
Example
trackInfo.trackLines = {
renderer: {
type: "simple",
symbol: {
type: "simple-line",
color: "green",
width: 2
}
}
};
Show inherited methods Hide inherited methods
Method DetailsInherited
Method addHandles(handleOrHandles, groupKey)
Adds one or more handles which are to be tied to the lifecycle of the object. The handles will be removed when the object is destroyed.
// Manually manage handles
const handle = reactiveUtils.when(
() => !view.updating,
() => {
wkidSelect.disabled = false;
},
{ once: true }
);
this.addHandles(handle);
// Destroy the object
this.destroy();
Parameters
Handles marked for removal once the object is destroyed.
groupKey *
optionalKey identifying the group to which the handles should be added. All the handles in the group can later be removed with Accessor.removeHandles(). If no key is provided the handles are added to a default group.
clone(){this}
Creates a deep clone of this object. Any properties that store values by reference will be assigned copies of the referenced values on the cloned instance.
Returns
Type Description this A deep clone of the class instance that invoked this method.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.
Returns
Type Description * | null | undefined Returns a new instance of this class.Inherited
Method hasHandles(groupKey){Boolean}
Returns true if a named group of handles exist.
Parameter
groupKey *
optionalA group key.
Returns
Type Description Boolean Returnstrue
if a named group of handles exist.
Example
// Remove a named group of handles if they exist.
if (obj.hasHandles("watch-view-updates")) {
obj.removeHandles("watch-view-updates");
}
Inherited
Method removeHandles(groupKey)
Removes a group of handles owned by the object.
Parameter
groupKey *
optionalA group key or an array or collection of group keys to remove.
Example
obj.removeHandles(); // removes handles from default group
obj.removeHandles("handle-group");
obj.removeHandles("other-handle-group");
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4