Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/exports/ChartExportHelper.java @ 7607:ef99781bcec7
(issue1667) Remove duplicate points in the same series in Diagram CSV export
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Wed, 27 Nov 2013 18:50:21 +0100 |
parents | 491b645123b6 |
children | 9509359c8db8 |
comparison
equal
deleted
inserted
replaced
7606:424c3d84e119 | 7607:ef99781bcec7 |
---|---|
341 protected static void writeCSVData( | 341 protected static void writeCSVData( |
342 CSVWriter writer, XYDataset data, NumberFormat format) { | 342 CSVWriter writer, XYDataset data, NumberFormat format) { |
343 int series = data.getSeriesCount(); | 343 int series = data.getSeriesCount(); |
344 for (int i = 0; i < series; i++) { | 344 for (int i = 0; i < series; i++) { |
345 int items = data.getItemCount(i); | 345 int items = data.getItemCount(i); |
346 double lastX = java.lang.Double.MAX_VALUE; | |
347 double lastY = java.lang.Double.MAX_VALUE; | |
348 | |
346 for (int j = 0; j < items; j++) { | 349 for (int j = 0; j < items; j++) { |
347 log.debug("write data: " + data.getX(i, j) + ", " + data.getY(i, j)); | 350 Number x = data.getX(i, j); |
351 Number y = data.getY(i, j); | |
352 double xVal = data.getXValue(i, j); | |
353 double yVal = data.getYValue(i, j); | |
354 | |
355 if (lastX == xVal && lastY == yVal) { | |
356 // comparing equality is ok here as we want | |
357 // to find data duplicates like they are added | |
358 // for example by the StyledSeriesBuilder in | |
359 // addStepPointsKmQ | |
360 log.debug("removing duplicate point in series"); | |
361 continue; | |
362 } | |
363 lastX = xVal; | |
364 lastY = yVal; | |
365 | |
366 log.debug("write data: " + x + ", " + y); | |
367 | |
348 | 368 |
349 /* | 369 /* |
350 // Skip (NaN,NaN) datapoints. | 370 // Skip (NaN,NaN) datapoints. |
351 if (java.lang.Double.isNaN(data.getYValue(i,j)) | 371 if (java.lang.Double.isNaN(data.getYValue(i,j)) |
352 && java.lang.Double.isNaN(data.getXValue(i,j))) { | 372 && java.lang.Double.isNaN(data.getXValue(i,j))) { |
356 | 376 |
357 String xString; | 377 String xString; |
358 String yString; | 378 String yString; |
359 | 379 |
360 try { | 380 try { |
361 xString = java.lang.Double.isNaN(data.getXValue(i,j)) | 381 xString = java.lang.Double.isNaN(xVal) |
362 ? "" | 382 ? "" |
363 : format.format(data.getX(i, j)); | 383 : format.format(x); |
364 yString = java.lang.Double.isNaN(data.getYValue(i, j)) | 384 yString = java.lang.Double.isNaN(yVal) |
365 ? "" | 385 ? "" |
366 : format.format(data.getY(i, j)); | 386 : format.format(y); |
367 } | 387 } |
368 catch (NumberFormatException nfe) { | 388 catch (NumberFormatException nfe) { |
369 xString = data.getX(i, j).toString(); | 389 xString = x.toString(); |
370 yString = data.getY(i, j).toString(); | 390 yString = y.toString(); |
371 } | 391 } |
372 writer.writeNext(new String[] { | 392 writer.writeNext(new String[] { |
373 xString, | 393 xString, |
374 yString}); | 394 yString}); |
375 } | 395 } |