-
Notifications
You must be signed in to change notification settings - Fork 3
/
types.ts
124 lines (110 loc) · 2.06 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
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
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
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 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
}