comparison gnv-artifacts/src/main/java/de/intevation/gnv/chart/HorizontalProfileChartFactory.java @ 185:5fc8f41669a6

Added Calculation of the Distance in the unit km for Geodetic-Coordinates according to the Specification GT_0030.004 gnv-artifacts/trunk@229 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Fri, 16 Oct 2009 12:37:00 +0000
parents f2c76f35da5a
children 92a43d90a0b8
comparison
equal deleted inserted replaced
184:5d050f6de41d 185:5fc8f41669a6
26 import com.vividsolutions.jts.io.WKTReader; 26 import com.vividsolutions.jts.io.WKTReader;
27 27
28 import de.intevation.gnv.chart.exception.TechnicalChartException; 28 import de.intevation.gnv.chart.exception.TechnicalChartException;
29 import de.intevation.gnv.geobackend.base.Result; 29 import de.intevation.gnv.geobackend.base.Result;
30 import de.intevation.gnv.transition.describedata.KeyValueDescibeData; 30 import de.intevation.gnv.transition.describedata.KeyValueDescibeData;
31 import de.intevation.gnv.utils.DistanceCalculator;
31 32
32 /** 33 /**
33 * 34 *
34 * @author Tim Englich <tim.englich@intevation.de> 35 * @author Tim Englich <tim.englich@intevation.de>
35 * 36 *
67 int lUpperCut, int lLowerCut, int pStart, 68 int lUpperCut, int lLowerCut, int pStart,
68 int pEnd) throws TechnicalChartException { 69 int pEnd) throws TechnicalChartException {
69 if (sDebug) 70 if (sDebug)
70 sLogger.debug("createXYSeries()"); 71 sLogger.debug("createXYSeries()");
71 XYSeries series = new XYSeries(seriesName); 72 XYSeries series = new XYSeries(seriesName);
73 DistanceCalculator dc = new DistanceCalculator();
72 try { 74 try {
73 Point lastPoint = null; 75 Point lastPoint = null;
74 double distance = 0; 76 double distance = 0;
75 int i = 0; 77 int i = 0;
76 Iterator<Result> resultIterator = resultSet.iterator(); 78 Iterator<Result> resultIterator = resultSet.iterator();
77 while (resultIterator.hasNext()) { 79 while (resultIterator.hasNext()) {
78 Result lRow = resultIterator.next(); 80 Result lRow = resultIterator.next();
79 if (i >= pStart && i <= pEnd) { 81 if (i >= pStart && i <= pEnd) {
80 Point p = (Point)wktReader.read(lRow.getString("SHAPE")); 82 Point p = (Point)wktReader.read(lRow.getString("SHAPE"));
81 if (lastPoint != null) { 83 if (lastPoint != null) {
82 distance = distance +p.distance(lastPoint); // TODO in Meter umrechnen 84 distance = distance + dc.calculateDistance(lastPoint, p);
83 } 85 }
84 lastPoint = p; 86 lastPoint = p;
85 double yValue = lRow.getDouble("YORDINATE"); 87 double yValue = lRow.getDouble("YORDINATE");
86 series.add(distance, yValue); 88 series.add(distance, yValue);
87 sLogger.debug(seriesName + " Added Value " + distance + " / " 89 sLogger.debug(seriesName + " Added Value " + distance + " / "

http://dive4elements.wald.intevation.org