@raruto/leaflet-elevation 1.9.4 → 2.0.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.
Files changed (45) hide show
  1. package/README.md +8 -7
  2. package/dist/leaflet-elevation.css +51 -161
  3. package/dist/leaflet-elevation.js +1622 -3767
  4. package/dist/leaflet-elevation.js.map +1 -1
  5. package/dist/leaflet-elevation.min.css +1 -1
  6. package/dist/leaflet-elevation.min.js +1 -3
  7. package/dist/leaflet-elevation.min.js.map +1 -1
  8. package/images/checkered.png +0 -0
  9. package/libs/leaflet-distance-marker.js +17 -18
  10. package/libs/leaflet-distance-marker.min.js +1 -1
  11. package/libs/leaflet-gpxgroup.js +2 -2
  12. package/libs/leaflet-ruler.css +42 -0
  13. package/libs/leaflet-ruler.js +183 -0
  14. package/libs/leaflet-ruler.min.css +1 -0
  15. package/libs/leaflet-ruler.min.js +1 -0
  16. package/package.json +9 -11
  17. package/src/chart.js +156 -143
  18. package/src/components.js +55 -76
  19. package/src/control.js +503 -345
  20. package/src/handlers/acceleration.js +64 -0
  21. package/src/handlers/acceleration.min.js +1 -0
  22. package/src/handlers/altitude.js +76 -0
  23. package/src/handlers/altitude.min.js +1 -0
  24. package/src/handlers/cadence.js +54 -0
  25. package/src/handlers/distance.js +45 -0
  26. package/src/handlers/distance.min.js +1 -0
  27. package/src/handlers/heart.js +53 -0
  28. package/src/handlers/slope.js +79 -0
  29. package/src/handlers/slope.min.js +1 -0
  30. package/src/handlers/speed.js +66 -0
  31. package/src/handlers/speed.min.js +1 -0
  32. package/src/handlers/time.js +103 -0
  33. package/src/handlers/time.min.js +1 -0
  34. package/src/index.css +51 -161
  35. package/src/index.js +0 -24
  36. package/src/marker.js +11 -14
  37. package/src/options.js +20 -28
  38. package/src/summary.js +14 -4
  39. package/src/utils.js +74 -102
  40. package/src/acceleration.js +0 -108
  41. package/src/altitude.js +0 -120
  42. package/src/distance.js +0 -78
  43. package/src/slope.js +0 -113
  44. package/src/speed.js +0 -110
  45. package/src/time.js +0 -124
package/src/speed.js DELETED
@@ -1,110 +0,0 @@
1
- import 'leaflet-i18n';
2
- import * as _ from './utils';
3
- import * as D3 from './components';
4
- import { Elevation } from './control';
5
-
6
- Elevation.addInitHook(function() {
7
-
8
- if (!this.options.speed && !this.options.acceleration) return;
9
-
10
- let opts = this.options;
11
- let speed = {};
12
-
13
- speed.label = opts.speedLabel || L._(opts.imperial ? 'mph' : 'km/h');
14
- opts.speedFactor = opts.speedFactor || 1;
15
-
16
- if (this.options.speed && this.options.speed != "summary") {
17
-
18
- this._registerAxisScale({
19
- axis : "y",
20
- position : "right",
21
- scale : {
22
- min : 0,
23
- max : +1,
24
- },
25
- tickPadding: 16,
26
- label : speed.label,
27
- labelX : 25,
28
- labelY : -8,
29
- name : "speed"
30
- });
31
-
32
- this._registerAreaPath({
33
- name : 'speed',
34
- label : 'Speed',
35
- yAttr : "speed",
36
- scaleX : 'distance',
37
- scaleY : 'speed',
38
- color : '#03ffff',
39
- strokeColor : '#000',
40
- strokeOpacity: "0.5",
41
- fillOpacity : "0.25",
42
- });
43
-
44
- }
45
-
46
- this.on('elepoint_added', function(e) {
47
- let data = this._data;
48
- let i = e.index;
49
-
50
- let currT = data[i].time;
51
- let prevT = i > 0 ? data[i - 1].time : currT;
52
-
53
- let deltaT = currT - prevT;
54
-
55
- let track = this.track_info;
56
- let sMax = track.speed_max || -Infinity; // Speed Max
57
- let sMin = track.speed_min || +Infinity; // Speed Min
58
- let sAvg = track.speed_avg || 0; // Speed Avg
59
- let speed = 0;
60
-
61
- if (deltaT > 0) {
62
- let delta = (data[i].dist - data[i > 0 ? i - 1 : i].dist) * 1000;
63
- speed = Math.abs((delta / deltaT) * opts.timeFactor) * opts.speedFactor;
64
- }
65
-
66
- // Try to smooth "crazy" speed values.
67
- if (this.options.speedDeltaMax) {
68
- let deltaS = i > 0 ? speed - data[i - 1].speed : 0;
69
- let maxDeltaS = this.options.speedDeltaMax;
70
- if (Math.abs(deltaS) > maxDeltaS) {
71
- speed = data[i - 1].speed + maxDeltaS * Math.sign(deltaS);
72
- }
73
- }
74
-
75
- // Range of acceptable speed values.
76
- speed = _.clamp(speed, this.options.speedRange);
77
-
78
- track.speed_max = speed > sMax ? speed : sMax;
79
- track.speed_min = speed < sMin ? speed : sMin;
80
- track.speed_avg = (speed + sAvg) / 2.0;
81
-
82
- data[i].speed = L.Util.formatNum(speed, 2);
83
- });
84
-
85
- if (this.options.speed) {
86
-
87
- this._registerTooltip({
88
- name: 'speed',
89
- chart: (item) => L._('v: ') + item.speed + " " + speed.label,
90
- marker: (item) => Math.round(item.speed) + " " + speed.label,
91
- });
92
-
93
- this._registerSummary({
94
- "minspeed" : {
95
- label: "Min Speed: ",
96
- value: (track) => Math.round(track.speed_min || 0) + '&nbsp;' + speed.label
97
- },
98
- "maxspeed" : {
99
- label: "Max Speed: ",
100
- value: (track) => Math.round(track.speed_max || 0) + '&nbsp;' + speed.label
101
- },
102
- "avgspeed": {
103
- label: "Avg Speed: ",
104
- value: (track) => Math.round(track.speed_avg || 0) + '&nbsp;' + speed.label
105
- }
106
- });
107
-
108
- }
109
-
110
- });
package/src/time.js DELETED
@@ -1,124 +0,0 @@
1
- import 'leaflet-i18n';
2
- import * as _ from './utils';
3
- import * as D3 from './components';
4
- import { Elevation } from './control';
5
-
6
- Elevation.addInitHook(function() {
7
-
8
- let opts = this.options;
9
- let time = {};
10
-
11
- time.label = opts.timeLabel || 't';
12
- opts.timeFactor = opts.timeFactor || 3600;
13
-
14
- /**
15
- * Common AVG speeds:
16
- * ----------------------
17
- * slow walk = 1.8 km/h
18
- * walking = 3.6 km/h
19
- * running = 10.8 km/h
20
- * cycling = 18 km/h
21
- * driving = 72 km/h
22
- * ----------------------
23
- */
24
- this._timeAVGSpeed = (opts.timeAVGSpeed || 3.6) * (opts.speedFactor || 1);
25
-
26
- if (!opts.timeFormat) {
27
- opts.timeFormat = (time) => (new Date(time)).toLocaleString().replaceAll('/', '-').replaceAll(',', ' ');
28
- } else if (opts.timeFormat == 'time') {
29
- opts.timeFormat = (time) => (new Date(time)).toLocaleTimeString();
30
- } else if (opts.timeFormat == 'date') {
31
- opts.timeFormat = (time) => (new Date(time)).toLocaleDateString();
32
- }
33
-
34
- opts.xTimeFormat = opts.xTimeFormat || ((t) => _.formatTime(t).split("'")[0]);
35
-
36
- if (opts.time && opts.time != "summary" && !L.Browser.mobile) {
37
-
38
- this._registerAxisScale({
39
- axis : "x",
40
- position : "top",
41
- scale : {
42
- attr : "duration",
43
- min : 0,
44
- },
45
- label : time.label,
46
- labelY : -10,
47
- labelX : () => this._width(),
48
- name : "time",
49
- tickFormat : (d) => (d == 0 ? '' : opts.xTimeFormat(d)),
50
- onAxisMount: axis => {
51
- axis.select(".domain")
52
- .remove();
53
- axis.selectAll("text")
54
- .attr('opacity', 0.65)
55
- .style('font-family', 'Monospace')
56
- .style('font-size', '110%');
57
- axis.selectAll(".tick line")
58
- .attr('y2', this._height())
59
- .attr('stroke-dasharray', 2)
60
- .attr('opacity', 0.75);
61
- }
62
- });
63
-
64
- }
65
-
66
- this.on('elepoint_added', function(e) {
67
- let data = this._data;
68
- let i = e.index;
69
-
70
- // Add missing timestamps (see: options.timeAVGSpeed)
71
- if (!e.point.meta || !e.point.meta.time) {
72
- e.point.meta = e.point.meta || {};
73
- let delta = (data[i].dist - data[i > 0 ? i - 1 : i].dist);
74
- let speed = this._timeAVGSpeed;
75
- e.point.meta.time = new Date(
76
- (
77
- i > 0
78
- ? data[i - 1].time.getTime() + ((( delta / speed) * opts.timeFactor) * 1000)
79
- : Date.now()
80
- )
81
- );
82
- }
83
-
84
- let time = e.point.meta.time;
85
-
86
- // Handle timezone offset
87
- if (time.getTime() - time.getTimezoneOffset() * 60 * 1000 === 0) {
88
- time = 0;
89
- }
90
-
91
- let currT = time;
92
- let prevT = i > 0 ? data[i - 1].time : currT;
93
-
94
- let deltaT = Math.abs(currT - prevT);
95
- let duration = (this.track_info.time || 0) + deltaT;
96
-
97
- this.track_info.time = duration;
98
-
99
- data[i].time = time;
100
- data[i].duration = duration;
101
- });
102
-
103
-
104
- if (this.options.timestamps) {
105
- this._registerTooltip({
106
- name: 'date',
107
- chart: (item) => L._("t: ") + this.options.timeFormat(item.time)
108
- });
109
- }
110
-
111
- if (this.options.time) {
112
- this._registerTooltip({
113
- name: 'time',
114
- chart: (item) => L._("T: ") + _.formatTime(item.duration || 0)
115
- });
116
- this._registerSummary({
117
- "tottime" : {
118
- label: "Total Time: ",
119
- value: (track) => _.formatTime(track.time || 0)
120
- }
121
- });
122
- }
123
-
124
- });