Skip to content

Commit 286176f

Browse files
committed
add a threshold for elevation changes
1 parent 0e3e7f1 commit 286176f

1 file changed

Lines changed: 11 additions & 4 deletions

File tree

app/javascript/maplibre/feature/elevation.js

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -229,11 +229,18 @@ function segmentColor (ctx, active, baseColor) {
229229
}
230230

231231
function showElevationStats (values) {
232-
let gain = 0, loss = 0
232+
// changes below threshold are not added, to filter GPS jitter
233+
const threshold = 2
234+
let gain = 0, loss = 0, ref = values[0]
233235
for (let i = 1; i < values.length; i++) {
234-
const diff = values[i] - values[i - 1]
235-
if (diff > 0) gain += diff
236-
else loss += Math.abs(diff)
236+
const diff = values[i] - ref
237+
if (diff > threshold) {
238+
gain += diff
239+
ref = values[i]
240+
} else if (diff < -threshold) {
241+
loss -= diff
242+
ref = values[i]
243+
}
237244
}
238245
const statsEl = document.getElementById('elevation-stats')
239246
if (statsEl) {

0 commit comments

Comments
 (0)