Refactor computeKinematic

This commit is contained in:
quaelnix 2023-01-10 15:34:37 +01:00 committed by GitHub
parent 1e819cf5bd
commit a49c43d1ef
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -202,26 +202,20 @@ final class StdPath extends OsmPath {
elevation_buffer += delta_h; elevation_buffer += delta_h;
double incline = calcIncline(dist); double incline = calcIncline(dist);
double wayMaxspeed; double maxSpeed = rc.maxSpeed;
double speedLimit = rc.expctxWay.getMaxspeed() / 3.6f;
wayMaxspeed = rc.expctxWay.getMaxspeed() / 3.6f; if (speedLimit > 0) {
if (wayMaxspeed == 0) { maxSpeed = Math.min(maxSpeed, speedLimit);
wayMaxspeed = rc.maxSpeed;
} }
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); double f_roll = rc.totalMass * GRAVITY * (rc.defaultC_r + incline);
if (rc.footMode) { if (rc.footMode) {
// Use Tobler's hiking function for walking sections // Use Tobler's hiking function for walking sections
speed = rc.maxSpeed * 3.6; speed = rc.maxSpeed * FastMath.exp(-3.5 * Math.abs(incline + 0.05));
speed = (speed * FastMath.exp(-3.5 * Math.abs(incline + 0.05))) / 3.6;
} else if (rc.bikeMode) { } else if (rc.bikeMode) {
speed = solveCubic(rc.S_C_x, f_roll, rc.bikerPower); speed = solveCubic(rc.S_C_x, f_roll, rc.bikerPower);
speed = Math.min(speed, wayMaxspeed); speed = Math.min(speed, maxSpeed);
} else // all other
{
speed = wayMaxspeed;
} }
float dt = (float) (dist / speed); float dt = (float) (dist / speed);
totalTime += dt; totalTime += dt;