Add track step estimated duration
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user