You may want to open a bug report for this one; the module maintainer 
for raster stuff is usually faster to respond to Jira issues than to email.
Jody
> Hi all:
>
>  I'm using ImageMosaic to load a GeoTiff index shapefile (9 GeoTiffs,
> total size of 146889x92337). If I display the resulting map using
> DisplayJAI I get an optimal performance but I need to use
> StreamingRenderer.render method to display multiple layers above the
> raster image. With StreamingRenderer.render I get really poor
> performance. Am I using GeoTools in the right way?
>
>  P.S.- I think that I'm missunderstanding (or not understanding at all the
> RasterSimbolizer part) because I get some kind of inverted colors.
>
>  Thanks in advance.
>
> -- Here is my code (I'm using GeoTools 2.3.5)
>
> public class PanelGeoMap extends JPanel implements MouseMotionListener {
>
>     private class PanelMap extends JPanel {
>
>         @Override
>         public void paint(Graphics g) {
>             try {
>                 Graphics2D g2d = (Graphics2D) g;
>                 Rectangle rectangle = new Rectangle(getSize());
>
>                 //System.out.println("Map size (px): " + rectangle.height
> + "x" + rectangle.width);
>
>                 renderer.paint(g2d, rectangle, mapContext.getLayerBounds());
>             } catch (IOException ex) {
>                 
> Logger.getLogger(PanelGeoMap.class.getName()).log(Level.SEVERE,
> null, ex);
>             }
>         }
>     }
>
>     private PanelMap panelMap;
>     private JScrollPane scrollPaneMap;
>
>     private Dimension preferredSizeMaximum;
>
>     private CoordinateReferenceSystem crs;
>     private GTRenderer renderer;
>     private Envelope env;
>     private DefaultMapContext mapContext;
>
>     public PanelGeoMap() {
>         renderer = new StreamingRenderer();
>
>         File file = null;
>         JFileChooser fc = new JFileChooser();
>         int ret = fc.showOpenDialog(this);
>
>         if (ret == JFileChooser.APPROVE_OPTION) {
>             file = fc.getSelectedFile();
>         } else {
>             System.exit(0);
>         }
>
>         AbstractGridCoverage2DReader reader;
>         try {
>             //reader = new GeoTiffReader(file, new
> Hints(Hints.FORCE_LONGITUDE_FIRST_AXIS_ORDER, Boolean.TRUE));
>             reader = new ImageMosaicReader(file, new
> Hints(Hints.FORCE_LONGITUDE_FIRST_AXIS_ORDER, Boolean.TRUE));
>         } catch (IOException ex) {
>             ex.printStackTrace();
>             return;
>         }
>
>         GridCoverage2D coverage;
>         try {
>             coverage = (GridCoverage2D) reader.read(null);
>         } catch (IOException ex) {
>             ex.printStackTrace();
>             return;
>         }
>
>         crs = coverage.getCoordinateReferenceSystem();
>         env = coverage.getEnvelope();
>         RenderedImage image = coverage.getRenderedImage();
>
>         StyleBuilder styleBuilder = new StyleBuilder();
>
>         ColorMap cm = styleBuilder.createColorMap(
>                 new String[]{"0", "255"},
>                 new double[]{0, 255},
>                 new Color[]{ new Color(0, 0, 0),
>                              new Color(255, 255, 255)},
>                 ColorMap.TYPE_RAMP);                    // XXX: ?
>
>
>         RasterSymbolizer rs = styleBuilder.createRasterSymbolizer(cm, 1);
>         Style st = styleBuilder.createStyle(rs);
>
>         mapContext = new DefaultMapContext(crs);
>         mapContext.addLayer(reader, st);
>         renderer.setContext(mapContext);
>
>         RenderingHints hints = new
> RenderingHints(RenderingHints.KEY_RENDERING,
> RenderingHints.VALUE_RENDER_SPEED);
>         renderer.setJava2DHints(hints);
>         Map renderParams = new HashMap();
>         renderParams.put("optimizedDataLoadingEnabled", new Boolean(true));
>         renderer.setRendererHints(renderParams);
>
>         int width = image.getWidth();
>         int height = image.getHeight();
>
>         /* Debug */
>         JFrame frameJAI = new JFrame("DisplayJAI");
>         frameJAI.getContentPane().add(new JScrollPane(new
> DisplayJAI(image)));
>         frameJAI.setVisible(true);
>
>         System.out.println("Image size: " + width + "x" + height);
>
>         panelMap = new PanelMap();
>         panelMap.addMouseMotionListener(this);
>         preferredSizeMaximum = new Dimension(width, height);
>         panelMap.setPreferredSize(preferredSizeMaximum);
>
>         scrollPaneMap = new JScrollPane(panelMap);
>         
> scrollPaneMap.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
>         
> scrollPaneMap.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
>         scrollPaneMap.setAutoscrolls(true);
>
>         add(scrollPaneMap, BorderLayout.CENTER);
>     }
>
>     public void zoomIn() {
>         Dimension preferredSizeActual = panelMap.getPreferredSize();
>
>         panelMap.setPreferredSize(new Dimension(preferredSizeActual.width
> - 2000, preferredSizeActual.height - 2000));
>         panelMap.revalidate();
>     }
>
>     public void zoomOut() {
>         Dimension preferredSizeActual = panelMap.getPreferredSize();
>     }
>
>     public void mouseDragged(MouseEvent e) {
>         System.out.println("Dragging " + e.getX() + " " + e.getY());
>         Rectangle r = new Rectangle(e.getX(), e.getY(), 1, 1);
>         scrollPaneMap.scrollRectToVisible(r);
>     }
>
>     public void mouseMoved(MouseEvent e) {
>
>     }
> }
>
>   


-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Geotools-gt2-users mailing list
Geotools-gt2-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to