# SampledPositionProperty

#### new Cesium.SampledPositionProperty(referenceFrame, numberOfDerivatives)
engine/Source/DataSources/SampledPositionProperty.js 21

A `SampledProperty` which is also a `PositionProperty`.

Name | Type | Default | Description
--- | --- | --- | ---
`referenceFrame` | ReferenceFrame | `ReferenceFrame.FIXED` | optional The reference frame in which the position is defined.
`numberOfDerivatives` | number | `0` | optional The number of derivatives that accompany each position; i.e. velocity, acceleration, etc...

### Members

#### backwardExtrapolationDuration : number
engine/Source/DataSources/SampledPositionProperty.js 171

Gets or sets the amount of time to extrapolate backward before the property becomes undefined. A value of 0 will extrapolate forever.

Default Value: `0`

#### backwardExtrapolationType : ExtrapolationType
engine/Source/DataSources/SampledPositionProperty.js 156

Gets or sets the type of extrapolation to perform when a value is requested at a time before any available samples.

Default Value: `ExtrapolationType.NONE`

#### readonly definitionChanged : Event
engine/Source/DataSources/SampledPositionProperty.js 65

Gets the event that is raised whenever the definition of this property changes. The definition is considered to have changed if a call to getValue would return a different result for the same time.

#### forwardExtrapolationDuration : number
engine/Source/DataSources/SampledPositionProperty.js 141

Gets or sets the amount of time to extrapolate forward before the property becomes undefined. A value of 0 will extrapolate forever.

Default Value: `0`

#### forwardExtrapolationType : ExtrapolationType
engine/Source/DataSources/SampledPositionProperty.js 126

Gets or sets the type of extrapolation to perform when a value is requested at a time after any available samples.

Default Value: `ExtrapolationType.NONE`

#### readonly interpolationAlgorithm : InterpolationAlgorithm
engine/Source/DataSources/SampledPositionProperty.js 102

Gets the interpolation algorithm to use when retrieving a value. Call `setInterpolationOptions` to set this.

Default Value: `LinearApproximation`

#### readonly interpolationDegree : number
engine/Source/DataSources/SampledPositionProperty.js 89

Gets the degree of interpolation to perform when retrieving a value. Call `setInterpolationOptions` to set this.

Default Value: `1`

#### readonly isConstant : boolean
engine/Source/DataSources/SampledPositionProperty.js 51

Gets a value indicating if this property is constant. A property is considered constant if getValue always returns the same result for the current definition.

#### numberOfDerivatives : number
engine/Source/DataSources/SampledPositionProperty.js 114

The number of derivatives contained by this property; i.e. 0 for just position, 1 for velocity, etc.

Default Value: `0`

#### referenceFrame : ReferenceFrame
engine/Source/DataSources/SampledPositionProperty.js 76

Gets the reference frame in which the position is defined.

Default Value: `ReferenceFrame.FIXED;`

### Methods

#### addSample(time, position, derivatives)
engine/Source/DataSources/SampledPositionProperty.js 246

Adds a new sample.

Name | Type | Description
--- | --- | ---
`time` | JulianDate | The sample time.
`position` | Cartesian3 | The position at the provided time.
`derivatives` | Array.<Cartesian3> | optional The array of derivative values at the provided time.

#### addSamples(times, positions, derivatives)
engine/Source/DataSources/SampledPositionProperty.js 274

Adds multiple samples via parallel arrays.

Name | Type | Description
--- | --- | ---
`times` | Array.<JulianDate> | An array of JulianDate instances where each index is a sample time.
`positions` | Array.<Cartesian3> | An array of Cartesian3 position instances, where each value corresponds to the provided time index.
`derivatives` | Array.<Array> | optional An array where each value is another array containing derivatives for the corresponding time index.

##### Throws:

- DeveloperError : All arrays must be the same length.

#### addSamplesPackedArray(packedSamples, epoch)
engine/Source/DataSources/SampledPositionProperty.js 289

Adds samples as a single packed array where each new sample is represented as a date, followed by the packed representation of the corresponding value and derivatives.

Name | Type | Description
--- | --- | ---
`packedSamples` | Array.<number> | The array of packed samples.
`epoch` | JulianDate | optional If any of the dates in packedSamples are numbers, they are considered an offset from this epoch, in seconds.

#### equals(other) → boolean
engine/Source/DataSources/SampledPositionProperty.js 322

Compares this property to the provided property and returns `true` if they are equal, `false` otherwise.

Name | Type | Description
--- | --- | ---
`other` | Property | optional The other property.

##### Returns:

`true` if left and right are equal, `false` otherwise.

#### getValue(time, result) → Cartesian3|undefined
engine/Source/DataSources/SampledPositionProperty.js 190

Gets the position at the provided time.

Name | Type | Default | Description
--- | --- | --- | ---
`time` | JulianDate | `JulianDate.now()` | optional The time for which to retrieve the value. If omitted, the current system time is used.
`result` | Cartesian3 |  | optional The object to store the value into, if omitted, a new instance is created and returned.

##### Returns:

The modified result parameter or a new instance if the result parameter was not supplied.

#### getValueInReferenceFrame(time, referenceFrame, result) → Cartesian3|undefined
engine/Source/DataSources/SampledPositionProperty.js 205

Gets the position at the provided time and in the provided reference frame.

Name | Type | Description
--- | --- | ---
`time` | JulianDate | The time for which to retrieve the value.
`referenceFrame` | ReferenceFrame | The desired referenceFrame of the result.
`result` | Cartesian3 | optional The object to store the value into, if omitted, a new instance is created and returned.

##### Returns:

The modified result parameter or a new instance if the result parameter was not supplied.

#### removeSample(time) → boolean
engine/Source/DataSources/SampledPositionProperty.js 302

Removes a sample at the given time, if present.

Name | Type | Description
--- | --- | ---
`time` | JulianDate | The sample time.

##### Returns:

`true` if a sample at time was removed, `false` otherwise.

#### removeSamples(time)
engine/Source/DataSources/SampledPositionProperty.js 311

Removes all samples for the given time interval.

Name | Type | Description
--- | --- | ---
`time` | TimeInterval | The time interval for which to remove all samples.

#### setInterpolationOptions(options)
engine/Source/DataSources/SampledPositionProperty.js 235

Sets the algorithm and degree to use when interpolating a position.

Name | Type | Description
--- | --- | ---
`options` | object | optional Object with the following properties:
Name | Type | Description
--- | --- | ---
`interpolationAlgorithm` | InterpolationAlgorithm | optional The new interpolation algorithm. If undefined, the existing property will be unchanged.
`interpolationDegree` | number | optional The new interpolation degree. If undefined, the existing property will be unchanged.

Need help? The fastest way to get answers is from the community and team on the Cesium Forum.