diff gnv-artifacts/src/main/java/de/intevation/gnv/math/QueriedXYDepth.java @ 462:912797826099

Use new raster access. gnv-artifacts/trunk@519 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Sat, 09 Jan 2010 12:45:42 +0000
parents 92d6cf448598
children 07672838fa5f
line wrap: on
line diff
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/math/QueriedXYDepth.java	Fri Jan 08 14:27:49 2010 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/math/QueriedXYDepth.java	Sat Jan 09 12:45:42 2010 +0000
@@ -37,6 +37,8 @@
     private QueryExecutor queryExecutor;
     
     private ArrayList<SoftReference<RasterObject>> rasterData;
+
+    private RasterObject last;
     
     /**
      * Constructor
@@ -60,7 +62,7 @@
                 Collection<Result> result = queryExecutor.executeQuery(this.queryID,filterValues);
                 for (Result row: result) {
                     if ((ro = (RasterObject)row.getObject(0)) != null) {
-                        rasterData.add(new SoftReference<RasterObject>(ro));
+                        rasterData.add(new SoftReference<RasterObject>(last = ro));
                     }
                     break;
                 }
@@ -74,11 +76,14 @@
     }
     
     private RasterObject getRasterObject(Coordinate coordinate){
+        if (last != null && last.contains(coordinate)) {
+            return last;
+        }
         for (int i = rasterData.size()-1; i >= 0; --i) {
             SoftReference<RasterObject> ref = rasterData.get(i);
             RasterObject ro = ref.get();
-            if (ro != null && ro.getEnvelope().contains(coordinate)) {
-                return ro;
+            if (ro != null && ro.contains(coordinate)) {
+                return last = ro;
             }
         }
         return null;

http://dive4elements.wald.intevation.org