Mercurial > dive4elements > river
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 |