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;
+    }
+
 }

http://dive4elements.wald.intevation.org