diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/CrossSectionArtifact.java @ 2678:d35e37b6a211

Fix issue620: synchron navigation at impossible km. flys-artifacts/trunk@4376 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Thu, 10 May 2012 09:13:33 +0000
parents 734d5f5e55c0
children 64dc2997b2dd
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/CrossSectionArtifact.java	Thu May 10 09:04:39 2012 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/CrossSectionArtifact.java	Thu May 10 09:13:33 2012 +0000
@@ -242,12 +242,13 @@
 
     /**
      * Get CrossSectionLine spatially closest to what is specified in the data
-     * "cross_section.km".
+     * "cross_section.km", null if considered too far.
      *
-     * @return CrossSectionLine closest to "cross_section.km".
+     * @return CrossSectionLine closest to "cross_section.km", might be null
+     *         if considered too far.
      */
     public FastCrossSectionLine searchCrossSectionLine() {
-
+        double TOO_FAR = 1d;
         CrossSection crossSection = CrossSectionFactory
             .getCrossSection(getDBID());
 
@@ -273,6 +274,11 @@
 
         double km = floorD < ceilD ? floor : ceil;
 
+        // If we are too far from the wished km, return null.
+        if (Math.abs(km - wishKM) > TOO_FAR) {
+            return null;
+        }
+
         return FastCrossSectionLineFactory
             .getCrossSectionLine(crossSection, km);
     }

http://dive4elements.wald.intevation.org