minor changes to route energy + trackname+param
This commit is contained in:
parent
a5799d7253
commit
46c114ba1e
2 changed files with 9 additions and 8 deletions
|
@ -243,21 +243,16 @@ final class StdPath extends OsmPath
|
||||||
double incline = calcIncline( dist );
|
double incline = calcIncline( dist );
|
||||||
|
|
||||||
double speed; // Travel speed
|
double speed; // Travel speed
|
||||||
double energy;
|
double f_roll = rc.totalMass * GRAVITY * ( rc.defaultC_r + incline );
|
||||||
if (rc.footMode || rc.expctxWay.getCostfactor() > 5)
|
if (rc.footMode || rc.expctxWay.getCostfactor() > 5)
|
||||||
{
|
{
|
||||||
// Use Tobler's hiking function for walking sections
|
// Use Tobler's hiking function for walking sections
|
||||||
speed = 6 * exp(-3.5 * Math.abs( incline + 0.05)) / 3.6;
|
speed = 6 * exp(-3.5 * Math.abs( incline + 0.05)) / 3.6;
|
||||||
energy = rc.totalMass * GRAVITY * incline * dist;
|
|
||||||
}
|
}
|
||||||
else if (rc.bikeMode)
|
else if (rc.bikeMode)
|
||||||
{
|
{
|
||||||
double f_roll = rc.totalMass * GRAVITY * ( rc.defaultC_r + incline );
|
|
||||||
speed = solveCubic( rc.S_C_x, f_roll, rc.bikerPower );
|
speed = solveCubic( rc.S_C_x, f_roll, rc.bikerPower );
|
||||||
speed = Math.min(speed, rc.maxSpeed);
|
speed = Math.min(speed, rc.maxSpeed);
|
||||||
// Don't compute energy assuming constant biker power, as speed is capped
|
|
||||||
// to a max value.
|
|
||||||
energy = dist*(rc.S_C_x*speed*speed + f_roll);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -265,7 +260,13 @@ final class StdPath extends OsmPath
|
||||||
}
|
}
|
||||||
float dt = (float) ( dist / speed );
|
float dt = (float) ( dist / speed );
|
||||||
totalTime += dt;
|
totalTime += dt;
|
||||||
totalEnergy += energy;
|
// Calc energy assuming biking (no good model yet for hiking)
|
||||||
|
// (Count only positive, negative would mean breaking to enforce maxspeed)
|
||||||
|
double energy = dist*(rc.S_C_x*speed*speed + f_roll);
|
||||||
|
if ( energy > 0. )
|
||||||
|
{
|
||||||
|
totalEnergy += energy;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static double solveCubic( double a, double c, double d )
|
private static double solveCubic( double a, double c, double d )
|
||||||
|
|
|
@ -113,7 +113,7 @@ public class ServerHandler extends RequestHandler {
|
||||||
String result;
|
String result;
|
||||||
// optional, may be null
|
// optional, may be null
|
||||||
String format = params.get( "format" );
|
String format = params.get( "format" );
|
||||||
String trackName = params.get( "trackName" );
|
String trackName = params.get( "trackname" );
|
||||||
if (trackName != null) {
|
if (trackName != null) {
|
||||||
track.name = trackName;
|
track.name = trackName;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue