Mercurial > dive4elements > gnv-client
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;