@geoblocks/elevation-profile 0.0.2 → 0.0.4

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.
@@ -0,0 +1,574 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
6
+ <script src="/index.600fa9d1.js" defer=""></script>
7
+ <style>body {
8
+ margin: 0;
9
+ }
10
+
11
+ .container {
12
+ margin: 50px;
13
+ position: relative;
14
+ }
15
+
16
+ #tooltip {
17
+ color: #fff;
18
+ background-color: #707070;
19
+ padding: 10px;
20
+ display: none;
21
+ position: absolute;
22
+ transform: translate(-50%, -100%);
23
+ }
24
+
25
+ elevation-profile {
26
+ width: 80%;
27
+ height: 300px;
28
+ display: block;
29
+ }
30
+
31
+ elevation-profile .grid.x {
32
+ display: none;
33
+ }
34
+
35
+ elevation-profile line {
36
+ shape-rendering: crispedges;
37
+ }
38
+
39
+ elevation-profile .axis .domain, .grid .domain {
40
+ display: none;
41
+ }
42
+
43
+ elevation-profile .axis line, .grid line {
44
+ stroke: #707070;
45
+ }
46
+
47
+ elevation-profile .pointer-line {
48
+ stroke: #707070;
49
+ stroke-opacity: .3;
50
+ stroke-width: 2px;
51
+ stroke-dasharray: 3 3;
52
+ }
53
+
54
+ elevation-profile .pointer-circle {
55
+ r: 6;
56
+ fill: #3761a4;
57
+ stroke: #fff;
58
+ stroke-width: 3px;
59
+ }
60
+
61
+ elevation-profile .elevation, elevation-profile .elevation.highlight {
62
+ stroke: #3761a4;
63
+ stroke-width: 2px;
64
+ stroke-linejoin: round;
65
+ }
66
+
67
+ elevation-profile .elevation.highlight {
68
+ stroke-width: 3px;
69
+ }
70
+
71
+ elevation-profile .area {
72
+ fill: #e6e6e6;
73
+ fill-opacity: .85;
74
+ }
75
+
76
+ </style>
77
+ </head>
78
+ <body>
79
+ <div class="container">
80
+ <div id="tooltip"></div>
81
+
82
+ <elevation-profile></elevation-profile>
83
+ </div>
84
+ <button id="set-lines">set lines</button>
85
+ <button id="reset-lines">reset lines</button>
86
+ <button id="save">save</button>
87
+
88
+ <pre id="logs"></pre>
89
+
90
+ <script>const profile = document.querySelector("elevation-profile");
91
+ const tooltip = document.querySelector("#tooltip");
92
+ const logs = document.querySelector("#logs");
93
+ const setLines = document.querySelector("#set-lines");
94
+ const resetLines = document.querySelector("#reset-lines");
95
+ const save = document.querySelector("#save");
96
+ save.addEventListener("click", ()=>{
97
+ const svg = profile.innerHTML;
98
+ const blob = new Blob([
99
+ svg
100
+ ], {
101
+ type: "image/svg+xml"
102
+ });
103
+ const url = URL.createObjectURL(blob);
104
+ const a = document.createElement("a");
105
+ a.href = url;
106
+ a.download = "elevation.svg";
107
+ a.click();
108
+ });
109
+ setLines.addEventListener("click", ()=>{
110
+ profile.lines = [
111
+ [
112
+ 746545,
113
+ 5900651,
114
+ 486,
115
+ 0
116
+ ],
117
+ [
118
+ 746546,
119
+ 5900647,
120
+ 486,
121
+ 2
122
+ ],
123
+ [
124
+ 746564,
125
+ 5900623,
126
+ 486,
127
+ 23
128
+ ],
129
+ [
130
+ 746575,
131
+ 5900607,
132
+ 486,
133
+ 36
134
+ ],
135
+ [
136
+ 746597,
137
+ 5900576,
138
+ 486,
139
+ 62
140
+ ],
141
+ [
142
+ 746608,
143
+ 5900563,
144
+ 487,
145
+ 74
146
+ ],
147
+ [
148
+ 746615,
149
+ 5900565,
150
+ 487,
151
+ 78
152
+ ],
153
+ [
154
+ 746618,
155
+ 5900565,
156
+ 487,
157
+ 81
158
+ ],
159
+ [
160
+ 746624,
161
+ 5900561,
162
+ 486,
163
+ 85
164
+ ],
165
+ [
166
+ 746630,
167
+ 5900560,
168
+ 485,
169
+ 90
170
+ ],
171
+ [
172
+ 746636,
173
+ 5900560,
174
+ 485,
175
+ 94
176
+ ],
177
+ [
178
+ 746640,
179
+ 5900561,
180
+ 485,
181
+ 97
182
+ ],
183
+ [
184
+ 746647,
185
+ 5900566,
186
+ 484,
187
+ 103
188
+ ],
189
+ [
190
+ 746653,
191
+ 5900573,
192
+ 484,
193
+ 108
194
+ ],
195
+ [
196
+ 746661,
197
+ 5900584,
198
+ 484,
199
+ 118
200
+ ],
201
+ [
202
+ 746676,
203
+ 5900573,
204
+ 485,
205
+ 131
206
+ ],
207
+ [
208
+ 746695,
209
+ 5900558,
210
+ 487,
211
+ 147
212
+ ],
213
+ [
214
+ 746707,
215
+ 5900548,
216
+ 490,
217
+ 158
218
+ ],
219
+ [
220
+ 746711,
221
+ 5900545,
222
+ 490,
223
+ 161
224
+ ],
225
+ [
226
+ 746713,
227
+ 5900539,
228
+ 490,
229
+ 166
230
+ ],
231
+ [
232
+ 746718,
233
+ 5900540,
234
+ 491,
235
+ 170
236
+ ],
237
+ [
238
+ 746730,
239
+ 5900543,
240
+ 491,
241
+ 178
242
+ ],
243
+ [
244
+ 746738,
245
+ 5900547,
246
+ 491,
247
+ 184
248
+ ],
249
+ [
250
+ 746750,
251
+ 5900553,
252
+ 492,
253
+ 193
254
+ ],
255
+ [
256
+ 746763,
257
+ 5900561,
258
+ 492,
259
+ 204
260
+ ],
261
+ [
262
+ 746768,
263
+ 5900566,
264
+ 492,
265
+ 209
266
+ ],
267
+ [
268
+ 746773,
269
+ 5900563,
270
+ 493,
271
+ 213
272
+ ],
273
+ [
274
+ 746776,
275
+ 5900563,
276
+ 493,
277
+ 215
278
+ ],
279
+ [
280
+ 746783,
281
+ 5900565,
282
+ 494,
283
+ 220
284
+ ],
285
+ [
286
+ 746787,
287
+ 5900568,
288
+ 494,
289
+ 224
290
+ ],
291
+ [
292
+ 746795,
293
+ 5900573,
294
+ 495,
295
+ 230
296
+ ],
297
+ [
298
+ 746800,
299
+ 5900576,
300
+ 496,
301
+ 234
302
+ ],
303
+ [
304
+ 746803,
305
+ 5900576,
306
+ 496,
307
+ 236
308
+ ],
309
+ [
310
+ 746810,
311
+ 5900578,
312
+ 498,
313
+ 241
314
+ ],
315
+ [
316
+ 746820,
317
+ 5900579,
318
+ 499,
319
+ 248
320
+ ],
321
+ [
322
+ 746831,
323
+ 5900579,
324
+ 500,
325
+ 255
326
+ ],
327
+ [
328
+ 746840,
329
+ 5900578,
330
+ 501,
331
+ 261
332
+ ],
333
+ [
334
+ 746846,
335
+ 5900576,
336
+ 502,
337
+ 266
338
+ ],
339
+ [
340
+ 746851,
341
+ 5900574,
342
+ 502,
343
+ 269
344
+ ],
345
+ [
346
+ 746854,
347
+ 5900573,
348
+ 502,
349
+ 272
350
+ ],
351
+ [
352
+ 746858,
353
+ 5900568,
354
+ 503,
355
+ 276
356
+ ],
357
+ [
358
+ 746860,
359
+ 5900565,
360
+ 503,
361
+ 279
362
+ ],
363
+ [
364
+ 746862,
365
+ 5900560,
366
+ 504,
367
+ 282
368
+ ],
369
+ [
370
+ 746863,
371
+ 5900545,
372
+ 505,
373
+ 292
374
+ ],
375
+ [
376
+ 746865,
377
+ 5900530,
378
+ 506,
379
+ 302
380
+ ],
381
+ [
382
+ 746868,
383
+ 5900509,
384
+ 508,
385
+ 317
386
+ ],
387
+ [
388
+ 746869,
389
+ 5900498,
390
+ 509,
391
+ 325
392
+ ],
393
+ [
394
+ 746872,
395
+ 5900488,
396
+ 509,
397
+ 332
398
+ ],
399
+ [
400
+ 746878,
401
+ 5900477,
402
+ 510,
403
+ 341
404
+ ],
405
+ [
406
+ 746882,
407
+ 5900469,
408
+ 511,
409
+ 347
410
+ ],
411
+ [
412
+ 746891,
413
+ 5900456,
414
+ 512,
415
+ 358
416
+ ],
417
+ [
418
+ 746899,
419
+ 5900446,
420
+ 513,
421
+ 366
422
+ ],
423
+ [
424
+ 746910,
425
+ 5900430,
426
+ 515,
427
+ 380
428
+ ],
429
+ [
430
+ 746931,
431
+ 5900402,
432
+ 517,
433
+ 403
434
+ ],
435
+ [
436
+ 746935,
437
+ 5900394,
438
+ 518,
439
+ 410
440
+ ],
441
+ [
442
+ 746947,
443
+ 5900368,
444
+ 520,
445
+ 429
446
+ ],
447
+ [
448
+ 746953,
449
+ 5900352,
450
+ 522,
451
+ 441
452
+ ],
453
+ [
454
+ 746956,
455
+ 5900350,
456
+ 522,
457
+ 443
458
+ ],
459
+ [
460
+ 746958,
461
+ 5900350,
462
+ 522,
463
+ 445
464
+ ],
465
+ [
466
+ 746963,
467
+ 5900352,
468
+ 522,
469
+ 449
470
+ ],
471
+ [
472
+ 746942,
473
+ 5900413,
474
+ 520,
475
+ 493
476
+ ],
477
+ [
478
+ 746933,
479
+ 5900436,
480
+ 519,
481
+ 510
482
+ ],
483
+ [
484
+ 746920,
485
+ 5900474,
486
+ 517,
487
+ 537
488
+ ],
489
+ [
490
+ 746912,
491
+ 5900496,
492
+ 517,
493
+ 554
494
+ ],
495
+ [
496
+ 746908,
497
+ 5900513,
498
+ 516,
499
+ 565
500
+ ],
501
+ [
502
+ 746905,
503
+ 5900524,
504
+ 515,
505
+ 573
506
+ ],
507
+ [
508
+ 746904,
509
+ 5900535,
510
+ 515,
511
+ 581
512
+ ],
513
+ [
514
+ 746903,
515
+ 5900547,
516
+ 514,
517
+ 589
518
+ ],
519
+ [
520
+ 746903,
521
+ 5900556,
522
+ 514,
523
+ 595
524
+ ],
525
+ [
526
+ 746903,
527
+ 5900568,
528
+ 514,
529
+ 603
530
+ ],
531
+ [
532
+ 746904,
533
+ 5900579,
534
+ 513,
535
+ 611
536
+ ],
537
+ [
538
+ 746907,
539
+ 5900591,
540
+ 513,
541
+ 619
542
+ ],
543
+ [
544
+ 746908,
545
+ 5900599,
546
+ 512,
547
+ 624
548
+ ],
549
+ [
550
+ 746909,
551
+ 5900604,
552
+ 512,
553
+ 628
554
+ ]
555
+ ];
556
+ });
557
+ resetLines.addEventListener("click", ()=>{
558
+ profile.lines = [];
559
+ });
560
+ profile.addEventListener("over", (event)=>{
561
+ logs.textContent = JSON.stringify(event.detail, null, 2);
562
+ tooltip.style.display = "block";
563
+ tooltip.textContent = `${event.detail.coordinate[2]} m`;
564
+ tooltip.style.left = `${event.detail.position.x}px`;
565
+ tooltip.style.top = `${event.detail.position.y - 20}px`;
566
+ });
567
+ profile.addEventListener("out", (event)=>{
568
+ logs.textContent = "";
569
+ tooltip.style.display = "none";
570
+ });
571
+
572
+ </script>
573
+ </body>
574
+ </html>