Sections
Definition
Tracks are essentially a time-based Route, typically from a GPS recording. They are represented in the app by the Track Class.
Timestamps
Timestamps determine Point order, and therefore Point connectivity.
They also allow further efficiencies in the Polyline structure used, as a they serve as unique lookup IDs, allowing many operations to be done purely by timestamp & time range references. The derived structure contains a hash map of timestamps that allow O(1) time complexity for retrieving any vertex/Point. This is an improvement over the O(n) lookup time complexity in the Linked List structure of Route Polylines, where the traversing the route is needed in order to reach Points.
Track Points & Segments
Track Points derive from Route Points, but contain the additional timestamp property. This is a GPS-recorded time “stamped” to a corresponding coordinate, recorded in UTC format.
Track Segments derived from Route Segments. Timestamps allow for the following additional properties:
Segment Property | Notes |
---|---|
Duration | Difference in time between Point I & Point J. |
Speed | length / duration |
Height Rate | height / duration. Sign indicates whether movement is up or down. |
Path Properties
The following diagram illustrates the speed property for Track Segments & how they are used to derive Point Path speeds.
See the Polyline data structure page for how these updates are handled in the Track data structure.