openskidata-format 5.2.0 → 5.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Run.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import * as GeoJSON from 'geojson';
2
2
  import { ElevationData, ElevationProfile } from './ElevationProfile';
3
3
  import { FeatureType } from './FeatureType';
4
+ import { RunDifficultyConvention } from './RunDifficultyConvention';
4
5
  import { SkiAreaSummaryFeature } from './SkiArea';
5
6
  import { SnowCoverHistory } from './SnowCoverHistory';
6
7
  import { Source } from './Source';
@@ -116,37 +117,6 @@ export declare enum RunColorValue {
116
117
  ORANGE = "hsl(34, 100%, 50%)",
117
118
  GREY = "hsl(0, 0%, 35%)"
118
119
  }
119
- /**
120
- * Run difficulty colors vary by region. This enum defines the color convention used for runs at a ski area.
121
- * @enum {string}
122
- */
123
- export declare enum RunDifficultyConvention {
124
- /**
125
- * European color convention:
126
- * - Green: Novice
127
- * - Blue: Easy
128
- * - Red: Intermediate
129
- * - Black: Advanced/Expert
130
- * - Orange: Freeride/Extreme
131
- */
132
- EUROPE = "europe",
133
- /**
134
- * Japanese color convention:
135
- * - Green: Novice/Easy
136
- * - Red: Intermediate
137
- * - Black: Advanced/Expert
138
- * - Orange: Freeride/Extreme
139
- */
140
- JAPAN = "japan",
141
- /**
142
- * North American color convention:
143
- * - Green: Novice/Easy
144
- * - Blue: Intermediate
145
- * - Black: Advanced/Expert
146
- * - Orange: Freeride/Extreme
147
- */
148
- NORTH_AMERICA = "north_america"
149
- }
150
120
  export declare function getRunElevationData(feature: RunFeature): ElevationData | null;
151
121
  export declare function getRunColor(convention: RunDifficultyConvention, difficulty: RunDifficulty | null): RunColorValue;
152
122
  export declare function runColorNameToValue(color: RunColorName): RunColorValue;
package/dist/Run.js CHANGED
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RunDifficultyConvention = exports.RunColorValue = exports.RunColorName = exports.RunDifficulty = exports.RunGrooming = exports.RunUse = void 0;
3
+ exports.RunColorValue = exports.RunColorName = exports.RunDifficulty = exports.RunGrooming = exports.RunUse = void 0;
4
4
  exports.getRunElevationData = getRunElevationData;
5
5
  exports.getRunColor = getRunColor;
6
6
  exports.runColorNameToValue = runColorNameToValue;
7
7
  exports.getRunColorName = getRunColorName;
8
8
  const ElevationProfile_1 = require("./ElevationProfile");
9
+ const RunDifficultyConvention_1 = require("./RunDifficultyConvention");
9
10
  const exhaustiveMatchingGuard_1 = require("./util/exhaustiveMatchingGuard");
10
11
  var RunUse;
11
12
  (function (RunUse) {
@@ -58,38 +59,6 @@ var RunColorValue;
58
59
  RunColorValue["ORANGE"] = "hsl(34, 100%, 50%)";
59
60
  RunColorValue["GREY"] = "hsl(0, 0%, 35%)";
60
61
  })(RunColorValue || (exports.RunColorValue = RunColorValue = {}));
61
- /**
62
- * Run difficulty colors vary by region. This enum defines the color convention used for runs at a ski area.
63
- * @enum {string}
64
- */
65
- var RunDifficultyConvention;
66
- (function (RunDifficultyConvention) {
67
- /**
68
- * European color convention:
69
- * - Green: Novice
70
- * - Blue: Easy
71
- * - Red: Intermediate
72
- * - Black: Advanced/Expert
73
- * - Orange: Freeride/Extreme
74
- */
75
- RunDifficultyConvention["EUROPE"] = "europe";
76
- /**
77
- * Japanese color convention:
78
- * - Green: Novice/Easy
79
- * - Red: Intermediate
80
- * - Black: Advanced/Expert
81
- * - Orange: Freeride/Extreme
82
- */
83
- RunDifficultyConvention["JAPAN"] = "japan";
84
- /**
85
- * North American color convention:
86
- * - Green: Novice/Easy
87
- * - Blue: Intermediate
88
- * - Black: Advanced/Expert
89
- * - Orange: Freeride/Extreme
90
- */
91
- RunDifficultyConvention["NORTH_AMERICA"] = "north_america";
92
- })(RunDifficultyConvention || (exports.RunDifficultyConvention = RunDifficultyConvention = {}));
93
62
  function getRunElevationData(feature) {
94
63
  const geometry = feature.geometry;
95
64
  const profile = feature.properties.elevationProfile;
@@ -123,7 +92,7 @@ function runColorNameToValue(color) {
123
92
  }
124
93
  function getRunColorName(convention, difficulty) {
125
94
  switch (convention) {
126
- case RunDifficultyConvention.EUROPE:
95
+ case RunDifficultyConvention_1.RunDifficultyConvention.EUROPE:
127
96
  switch (difficulty) {
128
97
  case RunDifficulty.NOVICE:
129
98
  return RunColorName.GREEN;
@@ -140,7 +109,7 @@ function getRunColorName(convention, difficulty) {
140
109
  default:
141
110
  return RunColorName.GREY;
142
111
  }
143
- case RunDifficultyConvention.JAPAN:
112
+ case RunDifficultyConvention_1.RunDifficultyConvention.JAPAN:
144
113
  switch (difficulty) {
145
114
  case RunDifficulty.NOVICE:
146
115
  case RunDifficulty.EASY:
@@ -156,7 +125,7 @@ function getRunColorName(convention, difficulty) {
156
125
  default:
157
126
  return RunColorName.GREY;
158
127
  }
159
- case RunDifficultyConvention.NORTH_AMERICA:
128
+ case RunDifficultyConvention_1.RunDifficultyConvention.NORTH_AMERICA:
160
129
  switch (difficulty) {
161
130
  case RunDifficulty.NOVICE:
162
131
  case RunDifficulty.EASY:
package/dist/Run.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Run.js","sourceRoot":"","sources":["../src/Run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Run.js","sourceRoot":"","sources":["../src/Run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { AllGeoJSON } from "@turf/helpers";
2
+ /**
3
+ * Run difficulty colors vary by region. This enum defines the color convention used for runs at a ski area.
4
+ * @enum {string}
5
+ */
6
+ export declare enum RunDifficultyConvention {
7
+ /**
8
+ * European color convention:
9
+ * - Green: Novice
10
+ * - Blue: Easy
11
+ * - Red: Intermediate
12
+ * - Black: Advanced/Expert
13
+ * - Orange: Freeride/Extreme
14
+ */
15
+ EUROPE = "europe",
16
+ /**
17
+ * Japanese color convention:
18
+ * - Green: Novice/Easy
19
+ * - Red: Intermediate
20
+ * - Black: Advanced/Expert
21
+ * - Orange: Freeride/Extreme
22
+ */
23
+ JAPAN = "japan",
24
+ /**
25
+ * North American color convention:
26
+ * - Green: Novice/Easy
27
+ * - Blue: Intermediate
28
+ * - Black: Advanced/Expert
29
+ * - Orange: Freeride/Extreme
30
+ */
31
+ NORTH_AMERICA = "north_america"
32
+ }
33
+ /**
34
+ * Determines the run difficulty convention for a given geographic location.
35
+ * Based on the center point of the geometry, returns the appropriate regional
36
+ * convention for ski run difficulty ratings.
37
+ *
38
+ * @param geojson - GeoJSON geometry to determine the center location from
39
+ * @returns The appropriate run difficulty convention for the location
40
+ * @throws Error if the center of geometry cannot be determined
41
+ */
42
+ export declare function getRunDifficultyConvention(geojson: AllGeoJSON): RunDifficultyConvention;
@@ -0,0 +1,333 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RunDifficultyConvention = void 0;
4
+ exports.getRunDifficultyConvention = getRunDifficultyConvention;
5
+ const tslib_1 = require("tslib");
6
+ const boolean_point_in_polygon_1 = tslib_1.__importDefault(require("@turf/boolean-point-in-polygon"));
7
+ const center_1 = tslib_1.__importDefault(require("@turf/center"));
8
+ const turf = tslib_1.__importStar(require("@turf/helpers"));
9
+ /**
10
+ * Run difficulty colors vary by region. This enum defines the color convention used for runs at a ski area.
11
+ * @enum {string}
12
+ */
13
+ var RunDifficultyConvention;
14
+ (function (RunDifficultyConvention) {
15
+ /**
16
+ * European color convention:
17
+ * - Green: Novice
18
+ * - Blue: Easy
19
+ * - Red: Intermediate
20
+ * - Black: Advanced/Expert
21
+ * - Orange: Freeride/Extreme
22
+ */
23
+ RunDifficultyConvention["EUROPE"] = "europe";
24
+ /**
25
+ * Japanese color convention:
26
+ * - Green: Novice/Easy
27
+ * - Red: Intermediate
28
+ * - Black: Advanced/Expert
29
+ * - Orange: Freeride/Extreme
30
+ */
31
+ RunDifficultyConvention["JAPAN"] = "japan";
32
+ /**
33
+ * North American color convention:
34
+ * - Green: Novice/Easy
35
+ * - Blue: Intermediate
36
+ * - Black: Advanced/Expert
37
+ * - Orange: Freeride/Extreme
38
+ */
39
+ RunDifficultyConvention["NORTH_AMERICA"] = "north_america";
40
+ })(RunDifficultyConvention || (exports.RunDifficultyConvention = RunDifficultyConvention = {}));
41
+ const northAmericanConventionGeometry = turf.multiPolygon([
42
+ [
43
+ [
44
+ [66.89889168301036, 22.98946421817959],
45
+ [76.79011657384558, 4.2607118936878265],
46
+ [112.5459757578734, -40.008871147786486],
47
+ [166.64372809287335, -58.19200446079054],
48
+ [191.91699393212554, -33.377687858720755],
49
+ [192.65370948033006, -8.971607939355977],
50
+ [140.68354997294796, 5.451024881476499],
51
+ [123.38582294700518, 21.801329456101513],
52
+ [122.25942048875993, 24.243081370534554],
53
+ [123.02414890399393, 26.354744126525432],
54
+ [129.68307711216244, 35.3374262814546],
55
+ [131.36509887116028, 39.1827837685222],
56
+ [130.5715844381864, 42.515964349309684],
57
+ [130.62108313985783, 42.63370843853855],
58
+ [130.39263902117034, 42.73714858581644],
59
+ [130.8150956808529, 42.87954610777132],
60
+ [131.04334909066392, 42.88226217082041],
61
+ [131.33954328617205, 43.445079879213296],
62
+ [131.191137752773, 43.53879786242706],
63
+ [131.2860140618261, 44.06115319070142],
64
+ [131.1086866768622, 44.71097030226514],
65
+ [130.95332209785204, 44.84377389211244],
66
+ [131.56223386930952, 45.01998391706314],
67
+ [131.87876159757576, 45.342467064732745],
68
+ [131.9445424786545, 45.26381674117374],
69
+ [132.89886314033083, 45.04768363738535],
70
+ [132.9409663928247, 45.020634782943716],
71
+ [133.12560828825156, 45.14828761444474],
72
+ [133.11406817721956, 45.23774574998686],
73
+ [133.1686920707706, 45.49559658174417],
74
+ [133.4044528436404, 45.59600211321589],
75
+ [133.49367119277423, 45.87840483196845],
76
+ [133.57649823904808, 45.88061866181769],
77
+ [133.7230811284722, 46.06662995573109],
78
+ [133.68166349871666, 46.137321119014274],
79
+ [133.9014556853037, 46.24315756590036],
80
+ [134.29060710292293, 47.44981009549741],
81
+ [134.53603145724082, 47.47580868032259],
82
+ [134.80050117570937, 47.73143995381383],
83
+ [134.54808493637842, 48.00270638588145],
84
+ [134.7902354911858, 48.38077517538687],
85
+ [134.53852703049813, 48.414602674179406],
86
+ [134.05426284432252, 48.33207866806839],
87
+ [133.44255382292891, 48.11130941788082],
88
+ [133.06661598961256, 48.102793716410616],
89
+ [132.65561957214425, 47.92377254119751],
90
+ [132.57597035647728, 47.73126763647102],
91
+ [131.5872859174675, 47.669086096155525],
92
+ [130.978760673039, 47.70552624852317],
93
+ [130.8927298265839, 47.92147467660291],
94
+ [130.69208001471225, 48.07898424194457],
95
+ [130.8424973965307, 48.32747681044523],
96
+ [130.53333624266037, 48.638203333369944],
97
+ [130.69902773150022, 48.86294984494779],
98
+ [130.4313260036679, 48.91144552665949],
99
+ [130.2336273608912, 48.877796693265594],
100
+ [129.49472335519903, 49.445146325369194],
101
+ [128.6404925727599, 49.6395594299683],
102
+ [127.95892224407356, 49.62425806475295],
103
+ [127.56973394676123, 49.842755131278835],
104
+ [127.6749910879272, 50.240140628289964],
105
+ [127.45368458653832, 50.26847480259133],
106
+ [127.37394005798404, 50.29288471184299],
107
+ [127.32612719828853, 50.34379944487219],
108
+ [127.37997900840315, 50.60653687131031],
109
+ [127.16325020595207, 50.933036917572906],
110
+ [126.99177818739395, 51.326954509452236],
111
+ [126.33131963313707, 52.493153867333206],
112
+ [126.09655832692533, 52.86710580508279],
113
+ [125.18461572471739, 53.21778527809076],
114
+ [123.62905555865535, 53.56957077991163],
115
+ [122.14662682326076, 53.507610554797225],
116
+ [120.81940759451805, 53.31174251524433],
117
+ [119.95478692741125, 52.77983494498105],
118
+ [120.02183577608542, 52.55624852160162],
119
+ [120.59821023820314, 52.5562523256705],
120
+ [120.65182146309388, 52.027454302929755],
121
+ [120.00845804883363, 51.63400833664596],
122
+ [119.10923570584242, 50.3653464992334],
123
+ [119.33042992474253, 50.30545934524457],
124
+ [119.21648675850292, 50.099528593865784],
125
+ [118.93783039700338, 49.98458223887849],
126
+ [118.54626899510839, 49.94616013995508],
127
+ [117.80663959739081, 49.53647108800752],
128
+ [117.484738258086, 49.624317990557614],
129
+ [117.26607476489426, 49.63477188589076],
130
+ [116.96468681768641, 49.73160402967815],
131
+ [116.62825050755794, 49.944503706705376],
132
+ [116.2287910451044, 50.03623236447976],
133
+ [115.97912115005505, 49.97893073129566],
134
+ [115.72585372832015, 49.87560524136032],
135
+ [115.38340104847777, 49.935338883138456],
136
+ [115.15157871232401, 50.03624558574222],
137
+ [114.96972180858182, 50.18262812854161],
138
+ [114.32823723216535, 50.27374466694857],
139
+ [113.21615782676918, 49.84014337192383],
140
+ [113.06279976594055, 49.60262851502978],
141
+ [112.75961978011298, 49.50544853175836],
142
+ [112.4528903096238, 49.51941937053812],
143
+ [111.93911320274538, 49.37324774723086],
144
+ [111.69083700584588, 49.38804243172055],
145
+ [110.68965090965844, 49.16705432804406],
146
+ [108.61062678042163, 49.33457873762259],
147
+ [107.90316280555385, 49.97532248790398],
148
+ [106.49948671672877, 50.3809827302172],
149
+ [105.51746011619525, 50.48702476586922],
150
+ [103.97795584841299, 50.133831277984996],
151
+ [102.69196601175406, 50.37681484681099],
152
+ [102.27144249887641, 50.87948727040293],
153
+ [102.17444849785716, 51.35640391793228],
154
+ [100.63003834780625, 51.738599556839574],
155
+ [98.92412930445079, 52.152271807237554],
156
+ [98.0263146497278, 51.38702212297895],
157
+ [97.83223938583137, 50.91503753447586],
158
+ [98.30141292582249, 50.51549014567553],
159
+ [98.03452228766315, 50.01401927081076],
160
+ [97.21087912958029, 49.75344974439781],
161
+ [96.59617521697089, 49.92558626439808],
162
+ [94.58073504473032, 50.071206832869876],
163
+ [94.44884921665886, 50.25288523325358],
164
+ [94.28227879098631, 50.59029357818193],
165
+ [93.06055432240078, 50.6108167038102],
166
+ [92.95500531764452, 50.764378755264715],
167
+ [92.38044935493656, 50.81536176617482],
168
+ [89.61447548394369, 49.896510834163024],
169
+ [89.41209157088667, 49.593951299041436],
170
+ [87.21941106111126, 49.136371106937105],
171
+ [86.47691458036888, 48.52706996107682],
172
+ [85.66792655187515, 48.41217050021373],
173
+ [85.61001315938637, 47.097608820611185],
174
+ [83.06577876367635, 47.1684932958469],
175
+ [82.19603900970611, 45.39598594758252],
176
+ [79.94680702146206, 44.995940936938524],
177
+ [80.74758671786947, 43.25101970631087],
178
+ [80.16296382083789, 42.42004311892032],
179
+ [79.08808560905646, 42.80565581050615],
180
+ [77.46543003728954, 42.93866114713731],
181
+ [77.30266016034727, 42.91577009179525],
182
+ [77.06944317811468, 42.98941184436538],
183
+ [76.83954492079482, 42.95784584611252],
184
+ [76.66706605000616, 42.91054018927406],
185
+ [76.35054751194656, 42.86314251596045],
186
+ [76.22106905960021, 42.92109675548289],
187
+ [75.8499512176796, 42.944841027684475],
188
+ [75.69647619703395, 42.79434701877443],
189
+ [75.20518050373951, 42.86058166470994],
190
+ [74.86716288299183, 42.99486162795807],
191
+ [74.21214208437436, 43.26799034589942],
192
+ [73.54918053004673, 43.03445951036437],
193
+ [73.43569691290458, 42.59058989745361],
194
+ [73.50713573720739, 42.42885549027292],
195
+ [73.32430827244477, 42.43964242187812],
196
+ [73.28138720704561, 42.524654623049486],
197
+ [72.89688006931604, 42.53825798475941],
198
+ [72.7028920768594, 42.65445195418786],
199
+ [71.8205490156389, 42.84297257066001],
200
+ [71.24172502287257, 42.76218198674192],
201
+ [70.96542642702568, 42.45295945325228],
202
+ [70.87574064610243, 42.288978943546994],
203
+ [70.93667564676599, 42.25956939262474],
204
+ [71.0522698554054, 42.28801700409892],
205
+ [71.26892670629547, 42.19664779423837],
206
+ [70.22467025584973, 41.6109136918285],
207
+ [70.1871419707528, 41.52357559397731],
208
+ [70.29521282660394, 41.5196557335768],
209
+ [70.4885172051716, 41.39563567019803],
210
+ [70.6908234400903, 41.47973822440426],
211
+ [70.78334977579652, 41.37596799777336],
212
+ [70.7936135992125, 41.23200478517444],
213
+ [71.40193377758987, 41.189890843929476],
214
+ [71.72132931443616, 41.463007098837124],
215
+ [72.25976659039807, 41.036213505586716],
216
+ [73.12473655458163, 40.821214468109844],
217
+ [71.8274169831183, 40.219535506292345],
218
+ [71.2093915709481, 40.35194316359275],
219
+ [70.70839519610914, 40.047767583705706],
220
+ [70.00814064760502, 40.19597188360018],
221
+ [69.3238929275289, 39.96163997362652],
222
+ [69.25288425833449, 39.8365015771121],
223
+ [69.36807176732333, 39.53622995828479],
224
+ [70.5656905159378, 39.611522993563625],
225
+ [70.81017094805003, 39.40296443017286],
226
+ [71.05478901580443, 39.42623263483682],
227
+ [71.09537841230028, 39.521081174175976],
228
+ [71.48723105871241, 39.61179598590786],
229
+ [71.80293870931277, 39.289369010362776],
230
+ [72.03176071465103, 39.344791211184486],
231
+ [72.22037536907436, 39.19478948035075],
232
+ [72.34794908849406, 39.34434407454637],
233
+ [73.15397827282933, 39.35800161267082],
234
+ [73.41580743762637, 39.46694232025965],
235
+ [73.60494023346439, 39.469004217709056],
236
+ [73.53306087489301, 39.24817612724672],
237
+ [73.8401473956308, 38.955283153545196],
238
+ [73.7178756559239, 38.88418224181672],
239
+ [73.84575285445322, 38.5733588129749],
240
+ [74.19825648155071, 38.625225936216],
241
+ [74.73465165940527, 38.39729684471283],
242
+ [74.94429646804616, 37.74563365375093],
243
+ [75.09730124153691, 37.34874288728962],
244
+ [74.47556092367677, 37.22736548435755],
245
+ [74.52571774786139, 37.04804932382365],
246
+ [72.64281263069017, 36.9965169904729],
247
+ [71.27151437563325, 36.14385342653641],
248
+ [71.70051938813555, 35.31553980310994],
249
+ [70.91367870839377, 34.02947262017156],
250
+ [69.8657881549984, 33.97753268150575],
251
+ [70.19479291508452, 33.38872790844742],
252
+ [69.48427263502771, 32.94309627730759],
253
+ [69.17043362955638, 31.802649394624297],
254
+ [66.5660130962763, 31.1468844695182],
255
+ [66.39058495939196, 29.902900359253024],
256
+ [64.20728972399988, 29.470320322411112],
257
+ [62.39830055544061, 29.433474533828033],
258
+ [60.82809795436239, 29.876493049104326],
259
+ [61.819412883544715, 28.5413645023537],
260
+ [62.838210084807116, 28.1758941784838],
261
+ [62.87712480493187, 26.710220153319582],
262
+ [61.95649723937791, 26.202543172995433],
263
+ [61.64164473778666, 25.062349569223997],
264
+ [66.89889168301036, 22.98946421817959],
265
+ ],
266
+ ],
267
+ [
268
+ [
269
+ [-79.49790751939359, 8.895517276865164],
270
+ [-80.09116426661198, 9.489400626216977],
271
+ [-71.5226805789838, 14.570830502555324],
272
+ [-64.296660455746, 16.87497218957077],
273
+ [-63.50670575144407, 19.468079078229948],
274
+ [-46.04319359052067, 49.81687541607755],
275
+ [-57.24573007399778, 67.81957009723368],
276
+ [-74.74198803509906, 76.55978940288878],
277
+ [-73.60375960527375, 78.39636019182609],
278
+ [-67.92218140574312, 80.61698801540712],
279
+ [-59.076220860081435, 82.41962573871615],
280
+ [-68.9778162806643, 85.05112877980659],
281
+ [-169.10721706859002, 69.87119013352208],
282
+ [-168.82669211383998, 64.59846733544799],
283
+ [-172.31141325730604, 63.991833108168834],
284
+ [-192.1254235906623, 52.646873605362146],
285
+ [-166.3003429543922, 12.967564352770154],
286
+ [-79.6692367415715, 4.562414945897046],
287
+ [-79.49790751939359, 8.895517276865164],
288
+ ],
289
+ ],
290
+ ]);
291
+ const japanConventionGeometry = turf.polygon([
292
+ [
293
+ [122.40443764161375, 24.25555191895947],
294
+ [123.22422482046358, 22.664415921202675],
295
+ [131.6668409404955, 27.1734104531445],
296
+ [141.6724497786463, 33.41882632781292],
297
+ [152.21247459573226, 45.19087135255526],
298
+ [154.7040665173107, 48.05238412051253],
299
+ [149.47388354609916, 49.86405083649407],
300
+ [144.62198341555745, 55.122855332829886],
301
+ [141.85000003174838, 54.453056889632535],
302
+ [141.56865023975553, 53.237305271866575],
303
+ [141.5658284519161, 52.12730212591498],
304
+ [140.86177532698593, 47.83608043534858],
305
+ [129.38176008175282, 34.88162789041118],
306
+ [122.40443764161375, 24.25555191895947],
307
+ ],
308
+ ]);
309
+ /**
310
+ * Determines the run difficulty convention for a given geographic location.
311
+ * Based on the center point of the geometry, returns the appropriate regional
312
+ * convention for ski run difficulty ratings.
313
+ *
314
+ * @param geojson - GeoJSON geometry to determine the center location from
315
+ * @returns The appropriate run difficulty convention for the location
316
+ * @throws Error if the center of geometry cannot be determined
317
+ */
318
+ function getRunDifficultyConvention(geojson) {
319
+ const point = (0, center_1.default)(geojson).geometry;
320
+ if (!point) {
321
+ throw "Cannot determine center of geometry";
322
+ }
323
+ if ((0, boolean_point_in_polygon_1.default)(point, japanConventionGeometry)) {
324
+ return RunDifficultyConvention.JAPAN;
325
+ }
326
+ else if ((0, boolean_point_in_polygon_1.default)(point, northAmericanConventionGeometry)) {
327
+ return RunDifficultyConvention.NORTH_AMERICA;
328
+ }
329
+ else {
330
+ return RunDifficultyConvention.EUROPE;
331
+ }
332
+ }
333
+ //# sourceMappingURL=RunDifficultyConvention.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunDifficultyConvention.js","sourceRoot":"","sources":["../src/RunDifficultyConvention.ts"],"names":[],"mappings":";;;AA8TA,gEAeC;;AA7UD,sGAAmE;AACnE,kEAAsC;AACtC,4DAAsC;AAGtC;;;GAGG;AACH,IAAY,uBA4BX;AA5BD,WAAY,uBAAuB;IACjC;;;;;;;OAOG;IACH,4CAAiB,CAAA;IAEjB;;;;;;OAMG;IACH,0CAAe,CAAA;IAEf;;;;;;OAMG;IACH,0DAA+B,CAAA;AACjC,CAAC,EA5BW,uBAAuB,uCAAvB,uBAAuB,QA4BlC;AAED,MAAM,+BAA+B,GAAG,IAAI,CAAC,YAAY,CAAC;IACxD;QACE;YACE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YACvC,CAAC,iBAAiB,EAAE,CAAC,kBAAkB,CAAC;YACxC,CAAC,kBAAkB,EAAE,CAAC,iBAAiB,CAAC;YACxC,CAAC,kBAAkB,EAAE,CAAC,kBAAkB,CAAC;YACzC,CAAC,kBAAkB,EAAE,CAAC,iBAAiB,CAAC;YACxC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;YACxC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;YACxC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;YACxC,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;YACtC,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;YACtC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;YACxC,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;YACrC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;YACxC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;YACxC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;YACxC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;YACxC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YACvC,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;YACrC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;YACxC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YACvC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;YACxC,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;YACrC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;YACxC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;YACxC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;YACxC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;YACxC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;YACxC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;YACtC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;YACxC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;YACtC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;YACxC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;YACtC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;YACxC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;YACxC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;YACtC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;YACxC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACvC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;YACxC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YACvC,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;YACrC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YACvC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;YACrC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YACvC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YACvC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YACvC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YACvC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YACvC,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;YACrC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YACvC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YACvC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;YACrC,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;YACrC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YACvC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;YACrC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;YACrC,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;YACrC,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;YACrC,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;YACrC,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;YACrC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;YACrC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YACvC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YACvC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YACvC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YACvC,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;YACtC,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;YACrC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YACvC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;YACrC,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;YACrC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YACvC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YACvC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YACvC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YACvC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YACtC,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;YACtC,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;YACrC,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;YACrC,CAAC,iBAAiB,EAAE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"}
package/dist/SkiArea.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import { FeatureType } from './FeatureType';
2
2
  import { LiftType } from './Lift';
3
3
  import { Location } from './Location';
4
- import { RunDifficulty, RunDifficultyConvention } from './Run';
4
+ import { RunDifficulty } from './Run';
5
+ import { RunDifficultyConvention } from './RunDifficultyConvention';
5
6
  import { SnowCoverHistory } from './SnowCoverHistory';
6
7
  import { Source } from './Source';
7
8
  import { Status } from './Status';
@@ -1 +1 @@
1
- {"version":3,"file":"SkiArea.js","sourceRoot":"","sources":["../src/SkiArea.ts"],"names":[],"mappings":";;;AAqEA,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,wCAAqB,CAAA;IACrB,oCAAiB,CAAA;AACnB,CAAC,EAHW,eAAe,+BAAf,eAAe,QAG1B"}
1
+ {"version":3,"file":"SkiArea.js","sourceRoot":"","sources":["../src/SkiArea.ts"],"names":[],"mappings":";;;AAsEA,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,wCAAqB,CAAA;IACrB,oCAAiB,CAAA;AACnB,CAAC,EAHW,eAAe,+BAAf,eAAe,QAG1B"}
@@ -0,0 +1,44 @@
1
+ import { RunDifficulty, RunFeature, RunUse } from "./Run";
2
+ import { RunDifficultyConvention } from "./RunDifficultyConvention";
3
+ /**
4
+ * Represents a slope grading scale with steepness thresholds for different run types.
5
+ * Used to estimate run difficulty based on slope steepness. Each scale defines
6
+ * threshold points where the difficulty classification changes based on gradient.
7
+ */
8
+ export type SlopeGradingScale = {
9
+ /** Stops must be ordered ascending by steepness */
10
+ stops: {
11
+ maxSteepness: number;
12
+ difficulty: RunDifficulty | null;
13
+ }[];
14
+ };
15
+ /**
16
+ * Gets the appropriate slope grading scale for a run based on its use types.
17
+ * Different run uses (downhill, nordic, etc.) have different steepness thresholds
18
+ * for difficulty classification due to the nature of the activity and equipment used.
19
+ *
20
+ * @param feature - The run feature to get the grading scale for
21
+ * @returns The appropriate slope grading scale with steepness thresholds
22
+ */
23
+ export declare function getSlopeGradingScale(feature: RunFeature): SlopeGradingScale;
24
+ /**
25
+ * Estimates the run difficulty based on steepness and the provided slope grading scale.
26
+ * Uses the absolute value of steepness to handle both uphill and downhill slopes.
27
+ * Finds the first threshold that the steepness falls under.
28
+ *
29
+ * @param steepness - The steepness value (slope gradient as a decimal, e.g., 0.1 = 10%)
30
+ * @param scale - The slope grading scale with steepness thresholds
31
+ * @returns The estimated difficulty based on steepness, or null if no match or below minimum threshold
32
+ */
33
+ export declare function getEstimatedRunDifficulty(steepness: number, scale: SlopeGradingScale): RunDifficulty | null;
34
+ /**
35
+ * Gets the appropriate slope grading scale for a specific run use and region.
36
+ * Different run uses (downhill, nordic, etc.) have different steepness thresholds
37
+ * for difficulty classification. This function allows for regional variations
38
+ * in the future if different conventions use different slope scales.
39
+ *
40
+ * @param runUse - The type of run use to get the grading scale for
41
+ * @param convention - The regional difficulty convention (currently not used but available for future regional variations)
42
+ * @returns The appropriate slope grading scale with steepness thresholds
43
+ */
44
+ export declare function getSlopeGradingScaleForUse(runUse: RunUse, convention: RunDifficultyConvention): SlopeGradingScale;