--- trunk/src/skrueger/RasterLegendData.java 2009/07/31 14:43:47 256
+++ branches/1.0-gt2-2.6/src/skrueger/RasterLegendData.java 2009/09/14 11:42:49 398
@@ -32,9 +32,17 @@
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
+import java.util.Map;
+import java.util.SortedMap;
+import java.util.TreeMap;
import org.apache.log4j.Logger;
+import org.geotools.coverage.grid.GridCoverage2D;
+import org.geotools.geometry.Envelope2D;
+import org.geotools.renderer.lite.gridcoverage2d.GridCoverageRenderer;
+import schmitzm.geotools.GTUtil;
+import schmitzm.geotools.grid.GridUtil;
import skrueger.i8n.Translation;
/**
@@ -44,7 +52,7 @@
* @author Stefan Alfons Krüger
*
*/
-public class RasterLegendData extends HashMap {
+public class RasterLegendData extends TreeMap {
static private final Logger LOGGER = Logger.getLogger(RasterLegendData.class);
private Boolean paintGaps = false;
@@ -61,7 +69,6 @@
* indicating nominal values in the raster (e.g. classifications)
*/
public RasterLegendData(boolean paintGaps) {
- super();
this.paintGaps = paintGaps;
}
@@ -69,17 +76,38 @@
return paintGaps ;
}
- public List getSortedKeys(){
- Object[] array = keySet().toArray();
-
- Arrays.sort(array);
-
- final LinkedList linkedList = new LinkedList();
- for (Object o : array){
- linkedList.add( (Double)o);
- }
-
- return linkedList;
-
- }
+// public List getSortedKeys(){
+// Object[] array = keySet().toArray();
+//
+// Arrays.sort(array);
+//
+// final LinkedList linkedList = new LinkedList();
+// for (Object o : array){
+// linkedList.add( (Double)o);
+// }
+//
+// return linkedList;
+//
+// }
+
+ /**
+ * Creates a sample {@link GridCoverage2D} (size 1x1, WGS84) for each
+ * legend value. These rasters can be used to do visualize the
+ * legend item in the corresponding color via {@link GridCoverageRenderer}.
+ */
+ public SortedMap createSampleRasters() {
+ SortedMap sampleRaster = new TreeMap();
+
+ for (Double rasterValue : keySet()) {
+ GridCoverage2D grid = GridUtil.GRID_FAC.create(
+ "Legend_"+rasterValue,
+ new float[][] { { rasterValue.floatValue() } },
+ new Envelope2D(GTUtil.WGS84, 0,0,1,1)
+ );
+ sampleRaster.put(rasterValue, grid);
+ }
+
+
+ return sampleRaster;
+ }
}