@trailstash/ultra 3.2.0 → 3.2.2

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/cli/.build.js.swo CHANGED
Binary file
package/cli/build.js CHANGED
@@ -80,6 +80,13 @@ export default class Build extends Command {
80
80
  args: { query },
81
81
  } = await this.parse(Build);
82
82
 
83
+ if (!fs.existsSync(config)) {
84
+ console.error(
85
+ `"${config}" not found, using ${path.join(ultraRoot, "config.js")}`,
86
+ );
87
+ config = path.join(ultraRoot, "config.js");
88
+ }
89
+
83
90
  if (query) {
84
91
  config = await buildConfigFromQuery(config, query);
85
92
  }
package/cli/serve.js CHANGED
@@ -41,6 +41,13 @@ export default class Serve extends Command {
41
41
  flags: { config, host, port },
42
42
  } = await this.parse(Serve);
43
43
 
44
+ if (!fs.existsSync(config)) {
45
+ console.error(
46
+ `"${config}" not found, using ${path.join(ultraRoot, "config.js")}`,
47
+ );
48
+ config = path.join(ultraRoot, "config.js");
49
+ }
50
+
44
51
  if (query) {
45
52
  config = await buildConfigFromQuery(config, query);
46
53
  }
@@ -7,6 +7,7 @@ import { parseSettings } from "../lib/settings.js";
7
7
  import queryProviders from "../lib/queryProviders/index.js";
8
8
  import AutoProvider from "../lib/queryProviders/auto.js";
9
9
  import {
10
+ hasHash,
10
11
  getOptionsFromQueryParams,
11
12
  getQueryFromQueryParams,
12
13
  } from "../lib/queryParams.js";
@@ -160,6 +161,8 @@ export class UltraMap extends HTMLElement {
160
161
  }
161
162
 
162
163
  #initUnbound(mapStyle) {
164
+ const hadHash = hasHash(this.options.hash);
165
+
163
166
  this.refs = {
164
167
  mapLibre: h("map-libre", {
165
168
  mapStyle,
@@ -187,6 +190,7 @@ export class UltraMap extends HTMLElement {
187
190
  return this.#run().then((data) => {
188
191
  if (
189
192
  this.#fitBounds &&
193
+ (!this.options.hash || !hadHash) &&
190
194
  !this.options.bounds &&
191
195
  (this.options.zoom === undefined || !this.options.center)
192
196
  ) {
@@ -41,6 +41,19 @@ const fetchURL = async (url) => {
41
41
  return await resp.text();
42
42
  };
43
43
 
44
+ export const hasHash = (hashName) => {
45
+ let hash = window.location.hash.slice(1)
46
+ if (hashName) {
47
+ const params = new URLSearchParams(hash);
48
+ hash = params.get(hashName);
49
+ }
50
+ if (!hash) {
51
+ return false
52
+ }
53
+ const loc = hash.split("/");
54
+ return loc.length >= 3 && !loc.some(v => isNaN(v));
55
+ };
56
+
44
57
  export const getQueryFromQueryParams = () => {
45
58
  const params = new URLSearchParams(window.location.hash.slice(1));
46
59
 
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "3.2.0",
6
+ "version": "3.2.2",
7
7
  "description": "A web based tool for making MapLibre GL maps with data from sources such as Overpass, GeoJSON, GPX, KML, TCX, etc",
8
8
  "main": "index.js",
9
9
  "scripts": {
package/kids.ultra DELETED
@@ -1,1044 +0,0 @@
1
- ---
2
- title: TrailStash Kids
3
- style:
4
- extends: https://open.trailsta.sh/style.json
5
- glyphs: https://styles.trailsta.sh/fonts/{fontstack}/{range}.pbf
6
- sprite:
7
- - id: nps
8
- url: https://styles.trailsta.sh/sprites/nps-shielded
9
- layers:
10
- - {id: poi_dot, visibility: none}
11
- - {id: poi, visibility: none}
12
- - &poi
13
- filter: [">=", [get, order], 15]
14
- type: symbol
15
- maxzoom: 24
16
- minzoom: 14
17
- symbol-sort-key: [get, order]
18
- text-justify:
19
- - case
20
- - - any
21
- - [ ==, [ get, anchor ], right ]
22
- - [ ==, [ get, anchor ], left ]
23
- - [get, anchor]
24
- - - any
25
- - [ ==, [ get, anchor ], top ]
26
- - [ ==, [ get, anchor ], bottom ]
27
- - center
28
- - [ ==, [ length, [ get, sprites ] ], 1 ]
29
- - center
30
- - left
31
- text-anchor:
32
- - case
33
- - [has, anchor]
34
- - [get, anchor]
35
- - [ ==, [ length, [ get, sprites ] ], 1 ]
36
- - top
37
- - left
38
- text-offset:
39
- - case
40
- - [ ==, [ length, [ get, sprites ] ], 1 ]
41
- - [ literal, [ 0, -.75 ] ]
42
- - [ ==, [ get, anchor ], right ]
43
- - [ literal, [ .75, 0 ] ]
44
- - [ literal, [ -.75, 0 ] ]
45
- text-color: white
46
- text-halo-color: black
47
- text-halo-width: 1
48
- text-font: [ Noto Sans Bold ]
49
- text-field:
50
- - case
51
- - [ '>', [ length, [ get, sprites ] ], 1 ]
52
- - - format
53
- - [ get, name ]
54
- - {}
55
- - [ literal, "\n" ]
56
- - [ image, [ at, 0, [ get, sprites ] ] ]
57
- - {}
58
- - [ literal, " " ]
59
- - {}
60
- - [ image, [ at, 1, [ get, sprites ] ] ]
61
- - {}
62
- - [ literal, " " ]
63
- - {}
64
- - - case
65
- - [ '>', [ length, [ get, sprites ] ], 2 ]
66
- - [ image, [ at, 2, [ get, sprites ] ] ]
67
- - ""
68
- - {}
69
- - [ literal, " " ]
70
- - {}
71
- - - case
72
- - [ '>', [ length, [ get, sprites ] ], 3 ]
73
- - [ image, [ at, 3, [ get, sprites ] ] ]
74
- - ""
75
- - {}
76
- - [ literal, " " ]
77
- - {}
78
- - - case
79
- - [ '>', [ length, [ get, sprites ] ], 4 ]
80
- - [ image, [ at, 4, [ get, sprites ] ] ]
81
- - ""
82
- - {}
83
- - [ literal, " " ]
84
- - {}
85
- - - case
86
- - [ '>', [ length, [ get, sprites ] ], 5 ]
87
- - [ image, [ at, 5, [ get, sprites ] ] ]
88
- - ""
89
- - {}
90
- - [ literal, " " ]
91
- - {}
92
- - - case
93
- - [ '>', [ length, [ get, sprites ] ], 6 ]
94
- - [ image, [ at, 6, [ get, sprites ] ] ]
95
- - ""
96
- - {}
97
- - [ literal, " " ]
98
- - {}
99
- - - case
100
- - [ '>', [ length, [ get, sprites ] ], 7 ]
101
- - [ image, [ at, 7, [ get, sprites ] ] ]
102
- - ""
103
- - {}
104
- - [ literal, " " ]
105
- - {}
106
- - - case
107
- - [ '>', [ length, [ get, sprites ] ], 8 ]
108
- - [ image, [ at, 8, [ get, sprites ] ] ]
109
- - ""
110
- - {}
111
- - - all
112
- - [ ==, [ length, [ get, sprites ] ], 1 ]
113
- - [ has, name ]
114
- - - format
115
- - [ image, [ at, 0, [ get, sprites ] ] ]
116
- - {}
117
- - "\n"
118
- - {}
119
- - [ get, name ]
120
- - {}
121
- - [ ==, [ length, [ get, sprites ] ], 1 ]
122
- - - format
123
- - [ image, [ at, 0, [ get, sprites ] ] ]
124
- - {}
125
- - [ get, name ]
126
- - <<: *poi
127
- maxzoom: 14
128
- minzoom: 10
129
- filter: ["<", [get, order], 20]
130
- ---
131
- {
132
- "type": "FeatureCollection",
133
- "features": [
134
- {
135
- "type": "Feature",
136
- "properties": {
137
- "name": "T. Tyler Potterfield Memorial Bridge",
138
- "sprites": [
139
- "nps:bridge-white-14"
140
- ],
141
- "order": 30
142
- },
143
- "geometry": {
144
- "coordinates": [
145
- -77.44506279150815,
146
- 37.53235558757456
147
- ],
148
- "type": "Point"
149
- }
150
- },
151
- {
152
- "type": "Feature",
153
- "properties": {
154
- "name": "Bryan Park",
155
- "sprites": [
156
- "nps:walking-white-14",
157
- "nps:strollers-white-14",
158
- "nps:bicycle-trail-white-14",
159
- "nps:playground-white-14"
160
- ],
161
- "order": 10
162
- },
163
- "geometry": {
164
- "coordinates": [
165
- -77.47615917296733,
166
- 37.59181931916156
167
- ],
168
- "type": "Point"
169
- }
170
- },
171
- {
172
- "type": "Feature",
173
- "properties": {
174
- "name": "Deep Run Park",
175
- "sprites": [
176
- "nps:walking-white-14",
177
- "nps:strollers-white-14",
178
- "nps:bicycle-trail-white-14",
179
- "nps:playground-white-14"
180
- ],
181
- "order": 10
182
- },
183
- "geometry": {
184
- "coordinates": [
185
- -77.59169355139638,
186
- 37.626191499030554
187
- ],
188
- "type": "Point"
189
- },
190
- "id": 2
191
- },
192
- {
193
- "type": "Feature",
194
- "properties": {
195
- "name": "Deep Run Pump Track",
196
- "sprites": [
197
- "nps:bicycle-trail-white-14"
198
- ],
199
- "order": 30
200
- },
201
- "geometry": {
202
- "coordinates": [
203
- -77.59230305674437,
204
- 37.62717540687524
205
- ],
206
- "type": "Point"
207
- }
208
- },
209
- {
210
- "type": "Feature",
211
- "properties": {
212
- "name": "Belle Isle",
213
- "sprites": [
214
- "nps:walking-white-14",
215
- "nps:trailhead-white-14",
216
- "nps:strollers-white-14",
217
- "nps:bicycle-trail-white-14",
218
- "nps:climbing-white-14"
219
- ],
220
- "order": 10,
221
- "anchor": "right"
222
- },
223
- "geometry": {
224
- "coordinates": [
225
- -77.45191935359166,
226
- 37.528638630614765
227
- ],
228
- "type": "Point"
229
- }
230
- },
231
- {
232
- "type": "Feature",
233
- "properties": {
234
- "name": "Maymont",
235
- "sprites": [
236
- "nps:walking-white-14",
237
- "nps:strollers-white-14"
238
- ],
239
- "order": 10
240
- },
241
- "geometry": {
242
- "coordinates": [
243
- -77.47771160807967,
244
- 37.535612934418225
245
- ],
246
- "type": "Point"
247
- }
248
- },
249
- {
250
- "type": "Feature",
251
- "properties": {
252
- "name": "Dogwood Dell",
253
- "sprites": [
254
- "nps:trailhead-white-14",
255
- "nps:bicycle-trail-white-14",
256
- "nps:playground-white-14"
257
- ],
258
- "order": 10,
259
- "anchor": "right"
260
- },
261
- "geometry": {
262
- "coordinates": [
263
- -77.48466698258284,
264
- 37.53820259060434
265
- ],
266
- "type": "Point"
267
- }
268
- },
269
- {
270
- "type": "Feature",
271
- "properties": {
272
- "name": "Grayland Tot Lot",
273
- "sprites": [
274
- "nps:playground-white-14"
275
- ],
276
- "order": 18
277
- },
278
- "geometry": {
279
- "coordinates": [
280
- -77.48090347772688,
281
- 37.55075432612857
282
- ],
283
- "type": "Point"
284
- },
285
- "id": 7
286
- },
287
- {
288
- "type": "Feature",
289
- "properties": {
290
- "name": "Hollywood Cemetery",
291
- "sprites": [
292
- "nps:walking-white-14",
293
- "nps:strollers-white-14"
294
- ],
295
- "order": 10
296
- },
297
- "geometry": {
298
- "coordinates": [
299
- -77.45478428524225,
300
- 37.53728439484483
301
- ],
302
- "type": "Point"
303
- }
304
- },
305
- {
306
- "type": "Feature",
307
- "properties": {
308
- "sprites": [
309
- "nps:bike-rack-white-14"
310
- ],
311
- "order": 50
312
- },
313
- "geometry": {
314
- "coordinates": [
315
- -77.48585869421697,
316
- 37.537215365153585
317
- ],
318
- "type": "Point"
319
- }
320
- },
321
- {
322
- "type": "Feature",
323
- "properties": {
324
- "name": "Carillon Tot Lot",
325
- "sprites": [
326
- "nps:playground-white-14"
327
- ],
328
- "order": 30
329
- },
330
- "geometry": {
331
- "coordinates": [
332
- -77.48497934364882,
333
- 37.5403340099183
334
- ],
335
- "type": "Point"
336
- }
337
- },
338
- {
339
- "type": "Feature",
340
- "properties": {
341
- "name": "Dell Meadow",
342
- "sprites": [
343
- "nps:playground-white-14"
344
- ],
345
- "order": 20
346
- },
347
- "geometry": {
348
- "coordinates": [
349
- -77.48297062197632,
350
- 37.53857531134673
351
- ],
352
- "type": "Point"
353
- }
354
- },
355
- {
356
- "type": "Feature",
357
- "properties": {
358
- "name": "Belle Isle Skills Park",
359
- "sprites": [
360
- "nps:bicycle-trail-white-14"
361
- ],
362
- "order": 30
363
- },
364
- "geometry": {
365
- "coordinates": [
366
- -77.45096161105506,
367
- 37.52895591808621
368
- ],
369
- "type": "Point"
370
- }
371
- },
372
- {
373
- "type": "Feature",
374
- "properties": {
375
- "sprites": [
376
- "nps:parking-white-14"
377
- ],
378
- "order": 60
379
- },
380
- "geometry": {
381
- "coordinates": [
382
- -77.47602151745527,
383
- 37.520948344751815
384
- ],
385
- "type": "Point"
386
- }
387
- },
388
- {
389
- "type": "Feature",
390
- "properties": {
391
- "name": "Forest Hill Park",
392
- "sprites": [
393
- "nps:walking-white-14",
394
- "nps:trailhead-white-14",
395
- "nps:strollers-white-14",
396
- "nps:bicycle-trail-white-14"
397
- ],
398
- "order": 10
399
- },
400
- "geometry": {
401
- "coordinates": [
402
- -77.47271307703281,
403
- 37.51998845148631
404
- ],
405
- "type": "Point"
406
- }
407
- },
408
- {
409
- "type": "Feature",
410
- "properties": {
411
- "sprites": [
412
- "nps:parking-white-14"
413
- ],
414
- "order": 60
415
- },
416
- "geometry": {
417
- "coordinates": [
418
- -77.4703325921651,
419
- 37.523437426165074
420
- ],
421
- "type": "Point"
422
- }
423
- },
424
- {
425
- "type": "Feature",
426
- "properties": {
427
- "sprites": [
428
- "nps:parking-white-14"
429
- ],
430
- "order": 60
431
- },
432
- "geometry": {
433
- "coordinates": [
434
- -77.47419231567358,
435
- 37.534893246138665
436
- ],
437
- "type": "Point"
438
- }
439
- },
440
- {
441
- "type": "Feature",
442
- "properties": {
443
- "sprites": [
444
- "nps:parking-white-14"
445
- ],
446
- "order": 60
447
- },
448
- "geometry": {
449
- "coordinates": [
450
- -77.47957964567996,
451
- 37.53840946159383
452
- ],
453
- "type": "Point"
454
- }
455
- },
456
- {
457
- "type": "Feature",
458
- "properties": {
459
- "sprites": [
460
- "nps:parking-white-14"
461
- ],
462
- "order": 60
463
- },
464
- "geometry": {
465
- "coordinates": [
466
- -77.48111236897748,
467
- 37.53949552487151
468
- ],
469
- "type": "Point"
470
- }
471
- },
472
- {
473
- "type": "Feature",
474
- "properties": {
475
- "sprites": [
476
- "nps:parking-white-14"
477
- ],
478
- "order": 60
479
- },
480
- "geometry": {
481
- "coordinates": [
482
- -77.482971203615,
483
- 37.53516410683052
484
- ],
485
- "type": "Point"
486
- }
487
- },
488
- {
489
- "type": "Feature",
490
- "properties": {
491
- "sprites": [
492
- "nps:parking-white-14"
493
- ],
494
- "order": 60
495
- },
496
- "geometry": {
497
- "coordinates": [
498
- -77.48579206670578,
499
- 37.537232875191535
500
- ],
501
- "type": "Point"
502
- }
503
- },
504
- {
505
- "type": "Feature",
506
- "properties": {
507
- "sprites": [
508
- "nps:bike-rack-white-14"
509
- ],
510
- "order": 50
511
- },
512
- "geometry": {
513
- "coordinates": [
514
- -77.45036538800733,
515
- 37.531390095985685
516
- ],
517
- "type": "Point"
518
- }
519
- },
520
- {
521
- "type": "Feature",
522
- "properties": {
523
- "sprites": [
524
- "nps:bike-rack-white-14"
525
- ],
526
- "order": 50
527
- },
528
- "geometry": {
529
- "coordinates": [
530
- -77.47062405012079,
531
- 37.52359946524385
532
- ],
533
- "type": "Point"
534
- }
535
- },
536
- {
537
- "type": "Feature",
538
- "properties": {
539
- "sprites": [
540
- "nps:bike-rack-white-14"
541
- ],
542
- "order": 50
543
- },
544
- "geometry": {
545
- "coordinates": [
546
- -77.45492061000064,
547
- 37.529525005855035
548
- ],
549
- "type": "Point"
550
- }
551
- },
552
- {
553
- "type": "Feature",
554
- "properties": {
555
- "sprites": [
556
- "nps:picnic-shelter-white-14"
557
- ],
558
- "order": 40
559
- },
560
- "geometry": {
561
- "coordinates": [
562
- -77.4570741235513,
563
- 37.52756109393489
564
- ],
565
- "type": "Point"
566
- }
567
- },
568
- {
569
- "type": "Feature",
570
- "properties": {
571
- "sprites": [
572
- "nps:picnic-shelter-white-14"
573
- ],
574
- "order": 40
575
- },
576
- "geometry": {
577
- "coordinates": [
578
- -77.47208335161108,
579
- 37.51800876106401
580
- ],
581
- "type": "Point"
582
- }
583
- },
584
- {
585
- "type": "Feature",
586
- "properties": {
587
- "sprites": [
588
- "nps:shelter-white-14"
589
- ],
590
- "order": 40
591
- },
592
- "geometry": {
593
- "coordinates": [
594
- -77.47266471128455,
595
- 37.518790162979286
596
- ],
597
- "type": "Point"
598
- }
599
- },
600
- {
601
- "type": "Feature",
602
- "properties": {
603
- "sprites": [
604
- "nps:picnic-shelter-white-14"
605
- ],
606
- "order": 40
607
- },
608
- "geometry": {
609
- "coordinates": [
610
- -77.48190851147247,
611
- 37.537912572204306
612
- ],
613
- "type": "Point"
614
- },
615
- "id": 27
616
- },
617
- {
618
- "type": "Feature",
619
- "properties": {
620
- "sprites": [
621
- "nps:picnic-shelter-white-14"
622
- ],
623
- "order": 40
624
- },
625
- "geometry": {
626
- "coordinates": [
627
- -77.47539948830153,
628
- 37.52072140073301
629
- ],
630
- "type": "Point"
631
- },
632
- "id": 28
633
- },
634
- {
635
- "type": "Feature",
636
- "properties": {
637
- "sprites": [
638
- "nps:parking-white-14"
639
- ],
640
- "order": 60
641
- },
642
- "geometry": {
643
- "coordinates": [
644
- -77.44776218686246,
645
- 37.53472857768483
646
- ],
647
- "type": "Point"
648
- }
649
- },
650
- {
651
- "type": "Feature",
652
- "properties": {
653
- "sprites": [
654
- "nps:parking-white-14"
655
- ],
656
- "order": 60
657
- },
658
- "geometry": {
659
- "coordinates": [
660
- -77.4573528400114,
661
- 37.52409481945769
662
- ],
663
- "type": "Point"
664
- }
665
- },
666
- {
667
- "type": "Feature",
668
- "properties": {
669
- "sprites": [
670
- "nps:parking-white-14"
671
- ],
672
- "order": 60
673
- },
674
- "geometry": {
675
- "coordinates": [
676
- -77.47404228868851,
677
- 37.524082194233316
678
- ],
679
- "type": "Point"
680
- }
681
- },
682
- {
683
- "type": "Feature",
684
- "properties": {
685
- "sprites": [
686
- "nps:parking-white-14"
687
- ],
688
- "order": 60
689
- },
690
- "geometry": {
691
- "coordinates": [
692
- -77.4767346913299,
693
- 37.52511955799936
694
- ],
695
- "type": "Point"
696
- }
697
- },
698
- {
699
- "type": "Feature",
700
- "properties": {
701
- "name": "Dry Rocks",
702
- "sprites": [
703
- "nps:climbing-white-14"
704
- ],
705
- "order": 30
706
- },
707
- "geometry": {
708
- "coordinates": [
709
- -77.45638487042123,
710
- 37.52603849407491
711
- ],
712
- "type": "Point"
713
- }
714
- },
715
- {
716
- "type": "Feature",
717
- "properties": {
718
- "sprites": [
719
- "nps:bike-rack-white-14"
720
- ],
721
- "order": 50
722
- },
723
- "geometry": {
724
- "coordinates": [
725
- -77.44624888600774,
726
- 37.52960772192816
727
- ],
728
- "type": "Point"
729
- }
730
- },
731
- {
732
- "type": "Feature",
733
- "properties": {
734
- "sprites": [
735
- "nps:bike-rack-white-14"
736
- ],
737
- "order": 50
738
- },
739
- "geometry": {
740
- "coordinates": [
741
- -77.44465285804027,
742
- 37.53448234156134
743
- ],
744
- "type": "Point"
745
- }
746
- },
747
- {
748
- "type": "Feature",
749
- "properties": {
750
- "sprites": [
751
- "nps:parking-white-14"
752
- ],
753
- "order": 60
754
- },
755
- "geometry": {
756
- "coordinates": [
757
- -77.46971721052016,
758
- 37.591844051624236
759
- ],
760
- "type": "Point"
761
- }
762
- },
763
- {
764
- "type": "Feature",
765
- "properties": {
766
- "sprites": [
767
- "nps:parking-white-14"
768
- ],
769
- "order": 60
770
- },
771
- "geometry": {
772
- "coordinates": [
773
- -77.4719470453588,
774
- 37.59599988542615
775
- ],
776
- "type": "Point"
777
- }
778
- },
779
- {
780
- "type": "Feature",
781
- "properties": {
782
- "sprites": [
783
- "nps:picnic-shelter-white-14"
784
- ],
785
- "order": 40
786
- },
787
- "geometry": {
788
- "coordinates": [
789
- -77.47252468168541,
790
- 37.59630378424865
791
- ],
792
- "type": "Point"
793
- }
794
- },
795
- {
796
- "type": "Feature",
797
- "properties": {
798
- "sprites": [
799
- "nps:parking-white-14"
800
- ],
801
- "order": 60
802
- },
803
- "geometry": {
804
- "coordinates": [
805
- -77.59147383869494,
806
- 37.62759134301483
807
- ],
808
- "type": "Point"
809
- }
810
- },
811
- {
812
- "type": "Feature",
813
- "properties": {
814
- "sprites": [
815
- "nps:parking-white-14"
816
- ],
817
- "order": 60
818
- },
819
- "geometry": {
820
- "coordinates": [
821
- -77.58873538561534,
822
- 37.62648328469818
823
- ],
824
- "type": "Point"
825
- }
826
- },
827
- {
828
- "type": "Feature",
829
- "properties": {
830
- "sprites": [
831
- "nps:parking-white-14"
832
- ],
833
- "order": 60
834
- },
835
- "geometry": {
836
- "coordinates": [
837
- -77.58677553776404,
838
- 37.62567841066857
839
- ],
840
- "type": "Point"
841
- }
842
- },
843
- {
844
- "type": "Feature",
845
- "properties": {
846
- "sprites": [
847
- "nps:parking-white-14"
848
- ],
849
- "order": 60
850
- },
851
- "geometry": {
852
- "coordinates": [
853
- -77.58894901943765,
854
- 37.623824279445984
855
- ],
856
- "type": "Point"
857
- }
858
- },
859
- {
860
- "type": "Feature",
861
- "properties": {
862
- "sprites": [
863
- "nps:playground-white-14"
864
- ],
865
- "order": 30
866
- },
867
- "geometry": {
868
- "coordinates": [
869
- -77.58755629538237,
870
- 37.62326202301716
871
- ],
872
- "type": "Point"
873
- }
874
- },
875
- {
876
- "type": "Feature",
877
- "properties": {
878
- "sprites": [
879
- "nps:playground-white-14"
880
- ],
881
- "order": 30
882
- },
883
- "geometry": {
884
- "coordinates": [
885
- -77.59113373020111,
886
- 37.62695615106436
887
- ],
888
- "type": "Point"
889
- }
890
- },
891
- {
892
- "type": "Feature",
893
- "properties": {
894
- "sprites": [
895
- "nps:playground-white-14"
896
- ],
897
- "order": 30
898
- },
899
- "geometry": {
900
- "coordinates": [
901
- -77.47247255415712,
902
- 37.59539014450705
903
- ],
904
- "type": "Point"
905
- }
906
- },
907
- {
908
- "type": "Feature",
909
- "properties": {
910
- "name": "Lewis G. Larus Park",
911
- "sprites": [
912
- "nps:trailhead-white-14",
913
- "nps:climbing-white-14"
914
- ],
915
- "order": 10
916
- },
917
- "geometry": {
918
- "coordinates": [
919
- -77.56503974424972,
920
- 37.54468292733333
921
- ],
922
- "type": "Point"
923
- },
924
- "id": 46
925
- },
926
- {
927
- "type": "Feature",
928
- "properties": {
929
- "name": "Powhite Park",
930
- "sprites": [
931
- "nps:trailhead-white-14"
932
- ],
933
- "order": 10
934
- },
935
- "geometry": {
936
- "coordinates": [
937
- -77.5239034584741,
938
- 37.52352044625812
939
- ],
940
- "type": "Point"
941
- },
942
- "id": 47
943
- },
944
- {
945
- "type": "Feature",
946
- "properties": {
947
- "sprites": [
948
- "nps:parking-white-14"
949
- ],
950
- "order": 60
951
- },
952
- "geometry": {
953
- "coordinates": [
954
- -77.52774598453678,
955
- 37.518090451874414
956
- ],
957
- "type": "Point"
958
- }
959
- },
960
- {
961
- "type": "Feature",
962
- "properties": {
963
- "sprites": [
964
- "nps:parking-white-14"
965
- ],
966
- "order": 60
967
- },
968
- "geometry": {
969
- "coordinates": [
970
- -77.56780820156143,
971
- 37.543626275715354
972
- ],
973
- "type": "Point"
974
- }
975
- },
976
- {
977
- "type": "Feature",
978
- "properties": {
979
- "sprites": [
980
- "nps:parking-white-14"
981
- ],
982
- "order": 60
983
- },
984
- "geometry": {
985
- "coordinates": [
986
- -77.56042949379925,
987
- 37.5396827163662
988
- ],
989
- "type": "Point"
990
- }
991
- },
992
- {
993
- "type": "Feature",
994
- "properties": {
995
- "name": "Geometry Park",
996
- "sprites": [
997
- "nps:playground-white-14"
998
- ],
999
- "order": 17
1000
- },
1001
- "geometry": {
1002
- "coordinates": [
1003
- -77.46189334142085,
1004
- 37.549675864272245
1005
- ],
1006
- "type": "Point"
1007
- }
1008
- },
1009
- {
1010
- "type": "Feature",
1011
- "properties": {
1012
- "name": "Lombardy Park",
1013
- "sprites": [
1014
- "nps:playground-white-14"
1015
- ],
1016
- "order": 19
1017
- },
1018
- "geometry": {
1019
- "coordinates": [
1020
- -77.45863578550944,
1021
- 37.55088339548517
1022
- ],
1023
- "type": "Point"
1024
- }
1025
- },
1026
- {
1027
- "type": "Feature",
1028
- "properties": {
1029
- "name": "Federal Park",
1030
- "sprites": [
1031
- "nps:playground-white-14"
1032
- ],
1033
- "order": 18
1034
- },
1035
- "geometry": {
1036
- "coordinates": [
1037
- -77.4673590709783,
1038
- 37.55036487255619
1039
- ],
1040
- "type": "Point"
1041
- }
1042
- }
1043
- ]
1044
- }