diff --git a/brouter-core/src/main/java/btools/router/FormatGpx.java b/brouter-core/src/main/java/btools/router/FormatGpx.java index e162292..0ed6cc5 100644 --- a/brouter-core/src/main/java/btools/router/FormatGpx.java +++ b/brouter-core/src/main/java/btools/router/FormatGpx.java @@ -250,7 +250,7 @@ public class FormatGpx extends Formatter { MatchedWaypoint mwpt = t.getMatchedWaypoint(idx); if (t.showTime) { - sele += ""; + sele += ""; } if (turnInstructionMode == 8) { if (mwpt != null && diff --git a/brouter-core/src/main/java/btools/router/Formatter.java b/brouter-core/src/main/java/btools/router/Formatter.java index 190d279..b9c3276 100644 --- a/brouter-core/src/main/java/btools/router/Formatter.java +++ b/brouter-core/src/main/java/btools/router/Formatter.java @@ -2,6 +2,10 @@ package btools.router; import java.io.BufferedWriter; import java.io.FileWriter; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Locale; +import java.util.TimeZone; public abstract class Formatter { private static final int OUTPUT_FORMAT_GPX = 0; @@ -70,4 +74,41 @@ public abstract class Formatter { return new String(ac, i + 1, 11 - i); } + public static String getFormattedTime2(int s) { + int seconds = (int) (s + 0.5); + int hours = seconds / 3600; + int minutes = (seconds - hours * 3600) / 60; + seconds = seconds - hours * 3600 - minutes * 60; + String time = ""; + if (hours != 0) + time = "" + hours + "h "; + if (minutes != 0) + time = time + minutes + "m "; + if (seconds != 0) + time = time + seconds + "s"; + return time; + } + + static public String getFormattedEnergy(int energy) { + return format1(energy / 3600000.) + "kwh"; + } + + static private String format1(double n) { + String s = "" + (long) (n * 10 + 0.5); + int len = s.length(); + return s.substring(0, len - 1) + "." + s.charAt(len - 1); + } + + + static final String dateformat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"; + + static public String getFormattedTime3(float time) { + SimpleDateFormat TIMESTAMP_FORMAT = new SimpleDateFormat(dateformat, Locale.US); + TIMESTAMP_FORMAT.setTimeZone(TimeZone.getTimeZone("UTC")); + // yyyy-mm-ddThh:mm:ss.SSSZ + Date d = new Date((long) (time * 1000f)); + return TIMESTAMP_FORMAT.format(d); + } + + } diff --git a/brouter-core/src/main/java/btools/router/RoutingEngine.java b/brouter-core/src/main/java/btools/router/RoutingEngine.java index c3c2597..a3c2d1e 100644 --- a/brouter-core/src/main/java/btools/router/RoutingEngine.java +++ b/brouter-core/src/main/java/btools/router/RoutingEngine.java @@ -192,7 +192,7 @@ public class RoutingEngine extends Thread { track.message = "track-length = " + track.distance + " filtered ascend = " + track.ascend + " plain-ascend = " + track.plainAscend + " cost=" + track.cost; if (track.energy != 0) { - track.message += " energy=" + track.getFormattedEnergy() + " time=" + track.getFormattedTime2(); + track.message += " energy=" + Formatter.getFormattedEnergy(track.energy) + " time=" + Formatter.getFormattedTime2(track.getTotalSeconds()); } track.name = "brouter_" + routingContext.getProfileName() + "_" + i; @@ -1676,7 +1676,7 @@ public class RoutingEngine extends Thread { } public String getTime() { - return foundTrack.getFormattedTime2(); + return Formatter.getFormattedTime2(foundTrack.getTotalSeconds()); } public OsmTrack getFoundTrack() {