Add track step estimated duration

This commit is contained in:
2019-05-11 18:51:53 +02:00
parent eb82cc3c39
commit 6a1faceb6f
5 changed files with 34 additions and 12 deletions

View File

@@ -287,19 +287,43 @@ function initSpotMessages(aoMessages, aoTracks) {
var aiCoords = feature.geometry.coordinates;
if(aiCoords) {
var iDistance = 0;
//var iElevDrop = 0;
var iElevDrop = 0;
var iElevGain = 0;
var iTime = 0;
for (var i = 1; i < aiCoords.length; i++) {
var oCurrPoint = new L.LatLng(aiCoords[i][1], aiCoords[i][0]);
var oPrevPoint = new L.LatLng(aiCoords[i - 1][1], aiCoords[i - 1][0]);
var iElevDelta = aiCoords[i][2] - aiCoords[i - 1][2];
var iSegDistance = oCurrPoint.distanceTo(oPrevPoint);
iDistance += oCurrPoint.distanceTo(oPrevPoint);
//iElevDrop += Math.min(iElevDelta, 0);
iDistance += iSegDistance;
iElevDrop += Math.min(iElevDelta, 0);
iElevGain += Math.max(iElevDelta, 0);
var iSpeedCorrecRatio = 0;
var iAngle = iElevDelta / iSegDistance;
if(iAngle < -1) iSpeedCorrecRatio = 0.5;
else if(iAngle < -0.2) iSpeedCorrecRatio = 1.25;
else if(iAngle < 0.1) iSpeedCorrecRatio = 1;
else if(iAngle < 0.25) iSpeedCorrecRatio = 0.85;
else if(iAngle < 0.5) iSpeedCorrecRatio = 0.6;
else if(iAngle < 1) iSpeedCorrecRatio = 0.5;
else iSpeedCorrecRatio = 0.25;
iTime += iSegDistance / 1000 * iSpeedCorrecRatio / 3.5 ; //default speed: 3.5km/h
}
$('<p>', {'class':'distance'}).addIcon('fa-distance fa-fw', true).append(Math.round(iDistance/1000)+'km').appendTo($Tooltip);
$('<p>', {'class':'elevation'}).addIcon('fa-elevation fa-fw', true).append(iElevGain+'m').appendTo($Tooltip);
var iTimeHours = Math.floor(iTime);
var iTimeMinutes = Math.round((iTime - iTimeHours) * 4) * 15; //Approx 15 minutes
if(iTimeMinutes == 60) {
iTimeMinutes = 0;
iTimeHours += 1;
}
if(iTimeMinutes==0) iTimeMinutes = '';
$('<p>', {'class':'detail'}).addIcon('fa-distance fa-fw', true).append(Math.round(iDistance/1000)+'km').appendTo($Tooltip);
$('<p>', {'class':'detail'}).addIcon('fa-time fa-fw', true).append('~ '+iTimeHours+'h'+iTimeMinutes).appendTo($Tooltip);
$('<p>', {'class':'detail'}).addIcon('fa-elev-gain fa-fw', true).append(iElevGain+'m').appendTo($Tooltip);
$('<p>', {'class':'detail'}).addIcon('fa-elev-drop fa-fw', true).append(iElevDrop+'m').appendTo($Tooltip);
}
oLayer

View File

@@ -39,7 +39,8 @@ $fa-css-prefix: fa;
.#{$fa-css-prefix}-elev-chart:before { content: fa-content($fa-var-chart-area); }
.#{$fa-css-prefix}-message-in:before { content: fa-content($fa-var-shoe-prints); }
.#{$fa-css-prefix}-distance:before { content: fa-content($fa-var-arrow-circle-right); }
.#{$fa-css-prefix}-elevation:before { content: fa-content($fa-var-arrow-circle-up); }
.#{$fa-css-prefix}-elev-drop:before { content: fa-content($fa-var-arrow-circle-down); }
.#{$fa-css-prefix}-elev-gain:before { content: fa-content($fa-var-arrow-circle-up); }
/* Feed */
.#{$fa-css-prefix}-post:before { content: fa-content($fa-var-comment); }

View File

@@ -82,14 +82,11 @@ $legend-color: #222;
&.description {
font-style: italic;
}
&.distance, &.elevation {
&.detail {
margin-top: 1em;
width: 50%;
display: inline-block;
}
&.elevation {
text-align: right;
}
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long