@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
313 lines (311 loc) • 14.6 kB
TypeScript
import type PopupTemplate from "../../PopupTemplate.js";
import type AggregateField from "./AggregateField.js";
import type TrackPartInfo from "./TrackPartInfo.js";
import type TimeInterval from "../../time/TimeInterval.js";
import type { ClonableMixin } from "../../core/Clonable.js";
import type { JSONSupport } from "../../core/JSONSupport.js";
import type { AggregateFieldProperties } from "./AggregateField.js";
import type { TrackPartInfoProperties } from "./TrackPartInfo.js";
import type { TimeIntervalProperties } from "../../time/TimeInterval.js";
import type { PopupTemplateProperties } from "../../PopupTemplate.js";
export interface TrackInfoProperties extends Partial<Pick<TrackInfo, "enabled" | "maxDisplayObservationsPerTrack" | "popupEnabled" | "timeField">> {
/**
* An array of aggregate fields that summarize [layer.fields](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#fields)
* in all observations of the track. Only visible observations are included in the aggregated data.
* Observations filtered out because of [maxDisplayObservationsPerTrack](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TrackInfo/#maxDisplayObservationsPerTrack) or [maxDisplayDuration](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TrackInfo/#maxDisplayDuration)
* are excluded from any aggregate field calculations.
*
* These fields may only be used by the [popupTemplate](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TrackInfo/#popupTemplate), and by the
* [TrackPartInfo.labelingInfo](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TrackPartInfo/#labelingInfo) and
* [TrackPartInfo.renderer](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TrackPartInfo/#renderer) of [trackLines](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TrackInfo/#trackLines).
*
* @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"
* }];
*/
fields?: AggregateFieldProperties[];
/**
* Configuration properties for displaying the latest observations.
*
* @example
* trackInfo.latestObservations = {
* renderer: {
* type: "simple",
* symbol: {
* type: "simple-marker",
* style: "circle",
* color: "red",
* size: 10
* }
* }
* };
*/
latestObservations?: TrackPartInfoProperties;
/**
* The maximum age of displayed observations. Observations older than this will not be displayed.
* Age is calculated by subtracting the time indicated by [timeField](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TrackInfo/#timeField)
* from the [view.timeExtent.end](https://developers.arcgis.com/javascript/latest/references/core/views/View/#timeExtent). For [StreamLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/StreamLayer/), age
* is calculated by subtracting the time indicated by [timeField](https://developers.arcgis.com/javascript/latest/references/core/layers/support/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" };
*/
maxDisplayDuration?: TimeIntervalProperties | null;
/**
* The [PopupTemplate](https://developers.arcgis.com/javascript/latest/references/core/PopupTemplate/) to apply to the track. When set, a popupTemplate
* independent of the [layer.popupTemplate](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#popupTemplate) is used.
* This popup can display summary information for each track, such as feature count or any other field defined in [fields](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TrackInfo/#fields).
*
* The PopupTemplate may contain one or more [Arcade](https://developers.arcgis.com/javascript/latest/arcade/) expressions following
* the specification defined by the [Arcade Feature Reduction Popup Profile](https://developers.arcgis.com/javascript/latest/arcade/#feature-reduction-popup).
* Expressions must return a string or a number.
*
* @see [Arcade Feature Reduction Popup Profile](https://developers.arcgis.com/javascript/latest/arcade/#feature-reduction-popup)
* @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
* }
* }]
* }
* };
*/
popupTemplate?: PopupTemplateProperties | null;
/**
* Configuration properties for displaying previous observations.
*
* @example
* trackInfo.previousObservations = {
* renderer: {
* type: "simple",
* symbol: {
* type: "simple-marker",
* style: "circle",
* color: "blue",
* size: 10
* }
* }
* };
*/
previousObservations?: TrackPartInfoProperties;
/**
* Configuration properties for displaying track lines.
*
* @example
* trackInfo.trackLines = {
* renderer: {
* type: "simple",
* symbol: {
* type: "simple-line",
* color: "green",
* width: 2
* }
* }
* };
*/
trackLines?: TrackPartInfoProperties;
}
/**
* 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](https://developers.arcgis.com/javascript/latest/references/core/layers/StreamLayer/) and [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/) classes.
*
* @beta
* @since 4.32
* @see [Guide - Visualization](https://developers.arcgis.com/javascript/latest/visualization/)
* @see [StreamLayer.trackInfo](https://developers.arcgis.com/javascript/latest/references/core/layers/StreamLayer/#trackInfo)
* @see [FeatureLayer.trackInfo](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#trackInfo)
*/
export default class TrackInfo extends TrackInfoSuperclass {
constructor(properties?: TrackInfoProperties);
/**
* Indicates whether the track info is enabled.
*
* @default true
* @example trackInfo.enabled = false;
*/
accessor enabled: boolean;
/**
* An array of aggregate fields that summarize [layer.fields](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#fields)
* in all observations of the track. Only visible observations are included in the aggregated data.
* Observations filtered out because of [maxDisplayObservationsPerTrack](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TrackInfo/#maxDisplayObservationsPerTrack) or [maxDisplayDuration](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TrackInfo/#maxDisplayDuration)
* are excluded from any aggregate field calculations.
*
* These fields may only be used by the [popupTemplate](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TrackInfo/#popupTemplate), and by the
* [TrackPartInfo.labelingInfo](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TrackPartInfo/#labelingInfo) and
* [TrackPartInfo.renderer](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TrackPartInfo/#renderer) of [trackLines](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TrackInfo/#trackLines).
*
* @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"
* }];
*/
get fields(): AggregateField[];
set fields(value: AggregateFieldProperties[]);
/**
* Configuration properties for displaying the latest observations.
*
* @example
* trackInfo.latestObservations = {
* renderer: {
* type: "simple",
* symbol: {
* type: "simple-marker",
* style: "circle",
* color: "red",
* size: 10
* }
* }
* };
*/
get latestObservations(): TrackPartInfo;
set latestObservations(value: TrackPartInfoProperties);
/**
* The maximum age of displayed observations. Observations older than this will not be displayed.
* Age is calculated by subtracting the time indicated by [timeField](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TrackInfo/#timeField)
* from the [view.timeExtent.end](https://developers.arcgis.com/javascript/latest/references/core/views/View/#timeExtent). For [StreamLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/StreamLayer/), age
* is calculated by subtracting the time indicated by [timeField](https://developers.arcgis.com/javascript/latest/references/core/layers/support/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" };
*/
get maxDisplayDuration(): TimeInterval | null | undefined;
set maxDisplayDuration(value: TimeIntervalProperties | null | undefined);
/**
* The maximum number of observations to display per track. If the value is 0, no limit will be imposed.
*
* @default 0
* @example trackInfo.maxDisplayObservationsPerTrack = 10;
*/
accessor maxDisplayObservationsPerTrack: number;
/**
* Indicates whether to display the popup for the track as defined in the [popupTemplate](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TrackInfo/#popupTemplate).
*
* @default true
* @example trackInfo.popupEnabled = false;
*/
accessor popupEnabled: boolean;
/**
* The [PopupTemplate](https://developers.arcgis.com/javascript/latest/references/core/PopupTemplate/) to apply to the track. When set, a popupTemplate
* independent of the [layer.popupTemplate](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#popupTemplate) is used.
* This popup can display summary information for each track, such as feature count or any other field defined in [fields](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TrackInfo/#fields).
*
* The PopupTemplate may contain one or more [Arcade](https://developers.arcgis.com/javascript/latest/arcade/) expressions following
* the specification defined by the [Arcade Feature Reduction Popup Profile](https://developers.arcgis.com/javascript/latest/arcade/#feature-reduction-popup).
* Expressions must return a string or a number.
*
* @see [Arcade Feature Reduction Popup Profile](https://developers.arcgis.com/javascript/latest/arcade/#feature-reduction-popup)
* @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
* }
* }]
* }
* };
*/
get popupTemplate(): PopupTemplate | null | undefined;
set popupTemplate(value: PopupTemplateProperties | null | undefined);
/**
* Configuration properties for displaying previous observations.
*
* @example
* trackInfo.previousObservations = {
* renderer: {
* type: "simple",
* symbol: {
* type: "simple-marker",
* style: "circle",
* color: "blue",
* size: 10
* }
* }
* };
*/
get previousObservations(): TrackPartInfo;
set previousObservations(value: TrackPartInfoProperties);
/**
* Indicates which field from the layer's [TimeInfo](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/) will be used to
* calculate observation ages for [maxDisplayDuration](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TrackInfo/#maxDisplayDuration).
* The `timeReceived` option is the system time when the client received the observation, and is only valid for
* [StreamLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/StreamLayer/).
*
* @default "startTimeField"
* @example trackInfo.timeField = "timeReceived";
*/
accessor timeField: "timeReceived" | "startTimeField" | "endTimeField";
/**
* Configuration properties for displaying track lines.
*
* @example
* trackInfo.trackLines = {
* renderer: {
* type: "simple",
* symbol: {
* type: "simple-line",
* color: "green",
* width: 2
* }
* }
* };
*/
get trackLines(): TrackPartInfo;
set trackLines(value: TrackPartInfoProperties);
}
declare const TrackInfoSuperclass: typeof JSONSupport & typeof ClonableMixin