smaller rework on elev and energy values
This commit is contained in:
parent
8a6579ef4d
commit
b7422c0ca7
2 changed files with 9 additions and 4 deletions
|
@ -350,8 +350,10 @@ public final class OsmTrack {
|
||||||
float t0 = ourSize > 0 ? nodes.get(ourSize - 1).getTime() : 0;
|
float t0 = ourSize > 0 ? nodes.get(ourSize - 1).getTime() : 0;
|
||||||
float e0 = ourSize > 0 ? nodes.get(ourSize - 1).getEnergy() : 0;
|
float e0 = ourSize > 0 ? nodes.get(ourSize - 1).getEnergy() : 0;
|
||||||
for (i = 0; i < t.nodes.size(); i++) {
|
for (i = 0; i < t.nodes.size(); i++) {
|
||||||
|
OsmPathElement e = t.nodes.get(i);
|
||||||
|
if (i == 0 && ourSize > 0 && nodes.get(ourSize - 1).getSElev() == Short.MIN_VALUE)
|
||||||
|
nodes.get(ourSize - 1).setSElev(e.getSElev());
|
||||||
if (i > 0 || ourSize == 0) {
|
if (i > 0 || ourSize == 0) {
|
||||||
OsmPathElement e = t.nodes.get(i);
|
|
||||||
e.setTime(e.getTime() + t0);
|
e.setTime(e.getTime() + t0);
|
||||||
e.setEnergy(e.getEnergy() + e0);
|
e.setEnergy(e.getEnergy() + e0);
|
||||||
nodes.add(e);
|
nodes.add(e);
|
||||||
|
|
|
@ -338,8 +338,9 @@ public class RoutingEngine extends Thread {
|
||||||
}
|
}
|
||||||
} else if (n.getSElev() == Short.MIN_VALUE && idx == track.nodes.size() - 1) {
|
} else if (n.getSElev() == Short.MIN_VALUE && idx == track.nodes.size() - 1) {
|
||||||
// fill at end
|
// fill at end
|
||||||
|
startIdx = idx;
|
||||||
for (int i = startIdx; i < track.nodes.size(); i++) {
|
for (int i = startIdx; i < track.nodes.size(); i++) {
|
||||||
track.nodes.get(i).setSElev(startElev);
|
track.nodes.get(i).setSElev(lastElev);
|
||||||
}
|
}
|
||||||
} else if (n.getSElev() == Short.MIN_VALUE) {
|
} else if (n.getSElev() == Short.MIN_VALUE) {
|
||||||
if (lastPt != null)
|
if (lastPt != null)
|
||||||
|
@ -474,6 +475,7 @@ public class RoutingEngine extends Thread {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
OsmPath.seg = 1; // set segment counter
|
||||||
for (int i = 0; i < matchedWaypoints.size() - 1; i++) {
|
for (int i = 0; i < matchedWaypoints.size() - 1; i++) {
|
||||||
if (lastTracks[i] != null) {
|
if (lastTracks[i] != null) {
|
||||||
if (refTracks[i] == null) refTracks[i] = new OsmTrack();
|
if (refTracks[i] == null) refTracks[i] = new OsmTrack();
|
||||||
|
@ -786,9 +788,9 @@ public class RoutingEngine extends Thread {
|
||||||
float addTime = (value / (speed_min / 3.6f));
|
float addTime = (value / (speed_min / 3.6f));
|
||||||
|
|
||||||
double addEnergy = 0;
|
double addEnergy = 0;
|
||||||
if (key < ourSize - 1) {
|
if (key > 0) {
|
||||||
double GRAVITY = 9.81; // in meters per second^(-2)
|
double GRAVITY = 9.81; // in meters per second^(-2)
|
||||||
double incline = (t.nodes.get(key).getElev() - t.nodes.get(key + 1).getElev()) / value;
|
double incline = (t.nodes.get(key - 1).getSElev() == Short.MIN_VALUE || t.nodes.get(key).getSElev() == Short.MIN_VALUE ? 0 : (t.nodes.get(key - 1).getElev() - t.nodes.get(key).getElev()) / value);
|
||||||
double f_roll = routingContext.totalMass * GRAVITY * (routingContext.defaultC_r + incline);
|
double f_roll = routingContext.totalMass * GRAVITY * (routingContext.defaultC_r + incline);
|
||||||
double spd = speed_min / 3.6;
|
double spd = speed_min / 3.6;
|
||||||
addEnergy = value * (routingContext.S_C_x * spd * spd + f_roll);
|
addEnergy = value * (routingContext.S_C_x * spd * spd + f_roll);
|
||||||
|
@ -799,6 +801,7 @@ public class RoutingEngine extends Thread {
|
||||||
n.setEnergy(n.getEnergy() + (float) addEnergy);
|
n.setEnergy(n.getEnergy() + (float) addEnergy);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
t.energy = (int) t.nodes.get(t.nodes.size() - 1).getEnergy();
|
||||||
|
|
||||||
logInfo("track-length total = " + t.distance);
|
logInfo("track-length total = " + t.distance);
|
||||||
logInfo("filtered ascend = " + t.ascend);
|
logInfo("filtered ascend = " + t.ascend);
|
||||||
|
|
Loading…
Reference in a new issue