Mercurial > dive4elements > gnv-client
diff gnv-artifacts/src/main/java/de/intevation/gnv/utils/DistanceCalculator.java @ 362:1ab23cd66870
Added result set handling. Needs some testing.
gnv-artifacts/trunk@436 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Wed, 16 Dec 2009 01:32:19 +0000 |
parents | da1499a464b9 |
children | 9a828e5a2390 |
line wrap: on
line diff
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/utils/DistanceCalculator.java Tue Dec 15 22:25:53 2009 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/utils/DistanceCalculator.java Wed Dec 16 01:32:19 2009 +0000 @@ -4,6 +4,9 @@ package de.intevation.gnv.utils; import com.vividsolutions.jts.geom.Point; +import com.vividsolutions.jts.geom.Coordinate; + +import java.util.List; /** * @author Tim Englich <tim.englich@intevation.de> @@ -22,13 +25,17 @@ } public static double calculateDistance(Point p1, Point p2){ + return calculateDistance(p1.getCoordinate(), p2.getCoordinate()); + } + + public static double calculateDistance(Coordinate p1, Coordinate p2){ double resultValue = 0.0; - double b1 = p1.getY(); - double b2 = p2.getY(); + double b1 = p1.y; + double b2 = p2.y; - double l1 = p1.getX(); - double l2 = p2.getX(); + double l1 = p1.x; + double l2 = p2.x; double F = (b1 + b2) / 2.0; @@ -62,4 +69,16 @@ return resultValue; } + public static final double calculateDistance(List<Coordinate> path) { + int N = path.size(); + if (N < 2) { + return 0d; + } + double sum = 0d; + for (int i = 1; i < N; ++i) { + sum += calculateDistance(path.get(i-1), path.get(i)); + } + return sum; + } + }