Ticket #47: bbtracker_common_src_0415.txt

File bbtracker_common_src_0415.txt, 6.4 kB (added by sibion, 3 years ago)
Line 
1 Index: C:/Projects/bbTracker/stable/0412/bbtracker_common/src/org/bbtracker/Track.java
2 ===================================================================
3 --- C:/Projects/bbTracker/stable/0412/bbtracker_common/src/org/bbtracker/Track.java     (revision 109)
4 +++ C:/Projects/bbTracker/stable/0412/bbtracker_common/src/org/bbtracker/Track.java     (working copy)
5 @@ -42,10 +42,19 @@
6         private transient double maxLongitude = Double.NEGATIVE_INFINITY;
7  
8         private transient float maxSpeed = Float.NaN;
9 +       
10 +       private transient float totalSpeed = 0, totalMovingSpeed, movingPoints = 0;
11  
12         private transient float minElevation = Float.NaN;
13  
14         private transient float maxElevation = Float.NaN;
15 +       
16 +       private transient float lastElevation = Float.NaN;
17 +       
18 +       private transient float currentGain = Float.NaN;
19 +       
20 +       private transient float totalGain = Float.NaN;
21 +       
22  
23         public Track(final String name) {
24                 this.name = name;
25 @@ -114,6 +123,10 @@
26                 return segments.elements();
27         }
28  
29 +       public float getTotalSpeed() {
30 +               return totalSpeed;
31 +       }
32 +       
33         public double getMaxLatitude() {
34                 return maxLatitude;
35         }
36 @@ -138,6 +151,27 @@
37                 }
38                 return length;
39         }
40 +       
41 +       public float getAvgSpeed(){
42 +               if (totalSpeed == 0){
43 +                       return Float.NaN;
44 +               }else {
45 +                       return totalSpeed/pointCount;
46 +               }
47 +       }
48 +       
49 +       public float getAvgMovingSpeed(){
50 +               if (totalMovingSpeed == 0) {
51 +                       return Float.NaN;
52 +               } else {
53 +                       return totalMovingSpeed/movingPoints;
54 +               }
55 +       }
56 +       
57 +       public float getElevationGain(){
58 +               return totalGain;
59 +       }
60 +       //End Added 2007 SIB
61  
62         public float getMaxSpeed() {
63                 return maxSpeed;
64 @@ -198,12 +232,32 @@
65                         if (Float.isNaN(minElevation) || elevation < minElevation) {
66                                 minElevation = elevation;
67                         }
68 +               //Added 2007 SIB
69                         if (Float.isNaN(maxElevation) || elevation > maxElevation) {
70 -                               maxElevation = elevation;
71 +                               maxElevation = elevation;       
72                         }
73 -
74 +                       if (Float.isNaN(totalGain)){
75 +                               totalGain = 0;
76 +                               lastElevation = elevation;
77 +                       }
78 +                       if (!Float.isNaN(totalGain)) {
79 +                               if (elevation > lastElevation){
80 +                                       currentGain = elevation - lastElevation;
81 +                                       totalGain += currentGain;
82 +                                       lastElevation = elevation;
83 +                               } else {
84 +                                       lastElevation = elevation;
85 +                               }
86 +                       }
87                 }
88 -
89 +               if (!Float.isNaN(speed)) {
90 +                       totalSpeed += speed;
91 +               }
92 +               if (!Float.isNaN(speed) && speed > 0) {
93 +                       totalMovingSpeed = totalMovingSpeed + speed;
94 +                       movingPoints++;
95 +               }
96 +               //End Added 2007 SIB
97         }
98  
99         public TrackSegment newSegment() {
100 @@ -218,6 +272,7 @@
101                 return newSegment;
102         }
103  
104 +
105         private static final int streamVersion = 1;
106  
107         public void writeToStream(final DataOutputStream out) throws IOException {
108 Index: C:/Projects/bbTracker/stable/0412/bbtracker_common/src/org/bbtracker/TrackSegment.java
109 ===================================================================
110 --- C:/Projects/bbTracker/stable/0412/bbtracker_common/src/org/bbtracker/TrackSegment.java      (revision 109)
111 +++ C:/Projects/bbTracker/stable/0412/bbtracker_common/src/org/bbtracker/TrackSegment.java      (working copy)
112 @@ -84,7 +84,7 @@
113         public double getLength() {
114                 return length;
115         }
116 -
117 +       
118         public Enumeration getPoints() {
119                 return points.elements();
120         }
121 Index: C:/Projects/bbTracker/stable/0412/bbtracker_common/src/org/bbtracker/UnitConverter.java
122 ===================================================================
123 --- C:/Projects/bbTracker/stable/0412/bbtracker_common/src/org/bbtracker/UnitConverter.java     (revision 109)
124 +++ C:/Projects/bbTracker/stable/0412/bbtracker_common/src/org/bbtracker/UnitConverter.java     (working copy)
125 @@ -43,7 +43,11 @@
126          * @return a human readable String containing the distance including a unit.
127          */
128         public abstract String distanceToString(final double distance);
129 -
130 +       
131 +//     public abstract String paceToString(final double length, final long time);
132 +       
133 +       public abstract String paceToString(final float speed);
134 +       
135         public abstract ScaleConfiguration getScaleDistance(final double availableMeter);
136  
137         public abstract ScaleConfiguration getScaleElevation(final int min, final int max);
138 Index: C:/Projects/bbTracker/stable/0412/bbtracker_common/src/org/bbtracker/ImperialUnitConverter.java
139 ===================================================================
140 --- C:/Projects/bbTracker/stable/0412/bbtracker_common/src/org/bbtracker/ImperialUnitConverter.java     (revision 109)
141 +++ C:/Projects/bbTracker/stable/0412/bbtracker_common/src/org/bbtracker/ImperialUnitConverter.java     (working copy)
142 @@ -54,6 +54,26 @@
143                         return Utils.doubleToString(miles, false) + "mi";
144                 }
145         }
146 +       
147 +//     public String paceToString(final double length, final long time) {
148 +//             if (Double.isNaN(length)) {
149 +//                     return "-min/mi";
150 +//             }
151 +//             final double miles = length * METER_TO_MILE_FACTOR;
152 +//             final double minutes = (double)time/60000;
153 +//             final double pace = minutes/miles;
154 +//             return Utils.doubleToString(pace, false) + "min/mi";
155 +//     }
156 +       
157 +       public String paceToString(final float speed) {
158 +               if (Float.isNaN(speed)) {
159 +                       return "-min/mi";
160 +               }
161 +               final float mph = speed * MS_TO_MPH_FACTOR;
162 +               final float pace = 60/mph;
163 +               return Utils.floatToString(pace, false) + "min/mi";
164 +               
165 +       }
166  
167         public ScaleConfiguration getScaleDistance(final double lengthInMeter) {
168                 final double lengthInFoot = lengthInMeter * METER_TO_FOOT_FACTOR;
169 Index: C:/Projects/bbTracker/stable/0412/bbtracker_common/src/org/bbtracker/MetricUnitConverter.java
170 ===================================================================
171 --- C:/Projects/bbTracker/stable/0412/bbtracker_common/src/org/bbtracker/MetricUnitConverter.java       (revision 109)
172 +++ C:/Projects/bbTracker/stable/0412/bbtracker_common/src/org/bbtracker/MetricUnitConverter.java       (working copy)
173 @@ -47,7 +47,26 @@
174                         return Utils.doubleToString(length / 1000, false) + "km";
175                 }
176         }
177 -
178 +       
179 +//     public String paceToString(final double length, final long time) {
180 +//             if (Double.isNaN(length)) {
181 +//                     return "-min/km";
182 +//             }
183 +//             final double km = length/1000;
184 +//             final double minutes = (double)time/60000;
185 +//             final double pace = minutes/km;
186 +//             return Utils.doubleToString(pace, false) + "min/km";
187 +//     }
188 +       
189 +       public String paceToString(final float speed) {
190 +               if (Float.isNaN(speed)) {
191 +                       return "-min/km";
192 +               }
193 +               final float value = speed * MS_TO_KMH_FACTOR;
194 +               final float pace = 60/value;
195 +               return Utils.floatToString(pace, false) + "min/km";
196 +       }
197 +       
198         public ScaleConfiguration getScaleDistance(final double lengthInMeter) {
199                 final int scaleSize = getRoundScaleSize((int) lengthInMeter);
200                 final ScaleConfiguration conf = new ScaleConfiguration();