comparison artifacts/src/main/java/org/dive4elements/river/exports/StyledSeriesBuilder.java @ 8507:7d0c4e508835

(issue1782) Select index based on km for step generation If we calculate from a larger KM to a smaller KM the larger index refers to the smaller KM so to correctly draw the steps with the assumption that the previous q is drawn together with the current q we have to select the next / prev index accordingly.
author Andre Heinecke <andre.heinecke@intevation.de>
date Tue, 16 Dec 2014 15:29:44 +0100
parents e4606eae8ea5
children a7eaf3e13bbe
comparison
equal deleted inserted replaced
8506:da9365fc2f42 8507:7d0c4e508835
265 int size = wqkms.size(); 265 int size = wqkms.size();
266 266
267 for (int i = 0; i < size; i++) { 267 for (int i = 0; i < size; i++) {
268 if (i==0) { 268 if (i==0) {
269 series.add(wqkms.getKm(i), wqkms.getQ(i), false); 269 series.add(wqkms.getKm(i), wqkms.getQ(i), false);
270 } 270 } else if (i == size-1) {
271 else { 271 series.add(wqkms.getKm(i), wqkms.getQ(i), false);
272 } else {
272 //Add two points. 273 //Add two points.
273 double halveX = (wqkms.getKm(i-1) + wqkms.getKm(i)) / 2d; 274 double prevX;
274 series.add(halveX, wqkms.getQ(i-1), false); 275 double prevQ;
276 if (wqkms.getKm(i + 1) < wqkms.getKm(i)) {
277 /* Depending on the data direction the previous km / q
278 * might have a larger index when we draw right to left data. */
279 prevX = wqkms.getKm(i + 1);
280 prevQ = wqkms.getQ(i + 1);
281 } else {
282 prevX = wqkms.getKm(i - 1);
283 prevQ = wqkms.getQ(i - 1);
284 }
285 double halveX = (prevX + wqkms.getKm(i)) / 2d;
286 series.add(halveX, prevQ, false);
275 series.add(halveX, wqkms.getQ(i), false); 287 series.add(halveX, wqkms.getQ(i), false);
276 }
277 if (i == size-1) {
278 series.add(wqkms.getKm(i), wqkms.getQ(i), false);
279 } 288 }
280 } 289 }
281 } 290 }
282 291
283 292

http://dive4elements.wald.intevation.org