-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathtypes.ts
139 lines (123 loc) · 2.32 KB
/
types.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
export type MetaData = {
name: string | null
description: string | null
link: Link | null
author: Author | null
time: string | null
}
export type Waypoint = {
name: string | null
symbol: string | null
comment: string | null
description: string | null
latitude: number
longitude: number
elevation: number | null
time: Date | null
}
export type Track = {
name: string | null
comment: string | null
description: string | null
src: string | null
number: string | null
link: Link | null
type: string | null
points: Point[]
distance: Distance
duration: Duration
elevation: Elevation
slopes: number[]
}
export type Route = {
name: string | null
comment: string | null
description: string | null
src: string | null
number: string | null
link: Link | null
type: string | null
points: Point[]
distance: Distance
elevation: Elevation
duration: Duration
slopes: number[]
}
export type Point = {
latitude: number
longitude: number
elevation: number | null
time: Date | null
extensions: Extensions | null
}
export type Distance = {
total: number
cumulative: number[]
}
export type Duration = {
cumulative: number[]
movingDuration: number
totalDuration: number
startTime: Date | null
endTime: Date | null
}
export type Elevation = {
maximum: number | null
minimum: number | null
positive: number | null
negative: number | null
average: number | null
}
export type Author = {
name: string | null
email: Email | null
link: Link | null
}
export type Email = {
id: string | null
domain: string | null
}
export type Link = {
href: string | null
text: string | null
type: string | null
}
export type ParsedGPXInputs = {
xml: Document
metadata: MetaData
waypoints: Waypoint[]
tracks: Track[]
routes: Route[]
}
export type Feature = {
type: string
geometry: {
type: string
coordinates: (number | null)[][]
}
properties: {
[key: string]: string | number | Link | null
}
}
export type WaypointFeature = {
type: string
geometry: {
type: string
coordinates: (number | null)[]
}
properties: {
[key: string]: string | number | Link | null
}
}
export type GeoJSON = {
type: string
features: (Feature | WaypointFeature)[]
properties: MetaData
}
export type Extensions = {
[key: string]: string | number | Extensions
}
export type Options = {
removeEmptyFields: boolean
avgSpeedThreshold: number
}