Merge pull request #495 from quaelnix/compute-kinematic-regression-fix
Fix regression of travel time calculation
This commit is contained in:
commit
d081e5eb18
1 changed files with 8 additions and 14 deletions
|
@ -202,26 +202,20 @@ final class StdPath extends OsmPath {
|
|||
elevation_buffer += delta_h;
|
||||
double incline = calcIncline(dist);
|
||||
|
||||
double wayMaxspeed;
|
||||
|
||||
wayMaxspeed = rc.expctxWay.getMaxspeed() / 3.6f;
|
||||
if (wayMaxspeed == 0) {
|
||||
wayMaxspeed = rc.maxSpeed;
|
||||
double maxSpeed = rc.maxSpeed;
|
||||
double speedLimit = rc.expctxWay.getMaxspeed() / 3.6f;
|
||||
if (speedLimit > 0) {
|
||||
maxSpeed = Math.min(maxSpeed, speedLimit);
|
||||
}
|
||||
wayMaxspeed = Math.min(wayMaxspeed, rc.maxSpeed);
|
||||
|
||||
double speed; // Travel speed
|
||||
double speed = maxSpeed; // Travel speed
|
||||
double f_roll = rc.totalMass * GRAVITY * (rc.defaultC_r + incline);
|
||||
if (rc.footMode || rc.expctxWay.getCostfactor() > 4.9) {
|
||||
if (rc.footMode) {
|
||||
// Use Tobler's hiking function for walking sections
|
||||
speed = rc.maxSpeed * 3.6;
|
||||
speed = (speed * FastMath.exp(-3.5 * Math.abs(incline + 0.05))) / 3.6;
|
||||
speed = rc.maxSpeed * FastMath.exp(-3.5 * Math.abs(incline + 0.05));
|
||||
} else if (rc.bikeMode) {
|
||||
speed = solveCubic(rc.S_C_x, f_roll, rc.bikerPower);
|
||||
speed = Math.min(speed, wayMaxspeed);
|
||||
} else // all other
|
||||
{
|
||||
speed = wayMaxspeed;
|
||||
speed = Math.min(speed, maxSpeed);
|
||||
}
|
||||
float dt = (float) (dist / speed);
|
||||
totalTime += dt;
|
||||
|
|
Loading…
Reference in a new issue