# SampledPositionProperty

#### new Cesium.SampledPositionProperty(referenceFrame, numberOfDerivatives)
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
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
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
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
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
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
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
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
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
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
DataSources/SampledPositionProperty.js 76

Gets the reference frame in which the position is defined.

Default Value: `ReferenceFrame.FIXED;`

### Methods

#### addSample(time, position, derivatives)
DataSources/SampledPositionProperty.js 241

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)
DataSources/SampledPositionProperty.js 269

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)
DataSources/SampledPositionProperty.js 284

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
DataSources/SampledPositionProperty.js 317

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
DataSources/SampledPositionProperty.js 188

Gets the position at the provided time.

Name | Type | Description
--- | --- | ---
`time` | JulianDate | The time for which to retrieve the value.
`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
DataSources/SampledPositionProperty.js 200

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
DataSources/SampledPositionProperty.js 297

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)
DataSources/SampledPositionProperty.js 306

Removes all samples for the given time interval.

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

#### setInterpolationOptions(options)
DataSources/SampledPositionProperty.js 230

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.