Mercurial > dive4elements > gnv-client
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 + " / " |