Search in sources :

Example 1 with LabelCacheImpl

use of org.geotools.renderer.label.LabelCacheImpl in project sldeditor by robward-scisys.

the class SLDMapPane method doSetRenderer.

/**
 * Do set renderer.
 *
 * @param newRenderer the new renderer
 */
private void doSetRenderer(GTRenderer newRenderer) {
    if (newRenderer != null) {
        Map<Object, Object> hints = newRenderer.getRendererHints();
        if (hints == null) {
            hints = new HashMap<Object, Object>();
        }
        if (newRenderer instanceof StreamingRenderer) {
            if (hints.containsKey(StreamingRenderer.LABEL_CACHE_KEY)) {
                labelCache = (LabelCache) hints.get(StreamingRenderer.LABEL_CACHE_KEY);
            } else {
                labelCache = new LabelCacheImpl();
                hints.put(StreamingRenderer.LABEL_CACHE_KEY, labelCache);
            }
        }
        newRenderer.setRendererHints(hints);
        if (mapContent != null) {
            newRenderer.setMapContent(mapContent);
        }
    }
    renderer = newRenderer;
}
Also used : LabelCacheImpl(org.geotools.renderer.label.LabelCacheImpl) StreamingRenderer(org.geotools.renderer.lite.StreamingRenderer)

Example 2 with LabelCacheImpl

use of org.geotools.renderer.label.LabelCacheImpl in project sldeditor by robward-scisys.

the class RenderPanelImpl method renderRasterMap.

/**
 * Render raster map.
 *
 * @param imageSize the image size
 * @param style the style
 * @param dpi the dpi
 */
private void renderRasterMap(Rectangle imageSize, Style style, int dpi) {
    DataSourceInterface dataSource = DataSourceFactory.getDataSource();
    AbstractGridCoverage2DReader gridCoverage = dataSource.getGridCoverageReader();
    if (gridCoverage == null) {
        validSymbol = false;
    }
    GridReaderLayer rasterLayer = null;
    MapViewport viewport = null;
    List<Layer> layerList = new ArrayList<Layer>();
    if (style != null) {
        rasterLayer = new GridReaderLayer(gridCoverage, style);
        layerList.add(rasterLayer);
        viewport = new MapViewport(rasterLayer.getBounds());
    }
    boolean hasGeometry = true;
    MapContent map = new MapContent();
    map.addLayers(layerList);
    map.setViewport(viewport);
    try {
        Map<Object, Object> hints = new HashMap<Object, Object>();
        if (OVERRIDE_DPI) {
            hints.put(StreamingRenderer.DPI_KEY, dpi);
        }
        // This ensures all the labelling is cleared
        hints.put(StreamingRenderer.LABEL_CACHE_KEY, new LabelCacheImpl());
        renderer.setRendererHints(hints);
        renderer.setMapContent(map);
        BufferedImage image = new BufferedImage(imageSize.width, imageSize.height, BufferedImage.TYPE_INT_ARGB);
        Graphics2D graphics = image.createGraphics();
        if (useAntiAlias) {
            graphics.setRenderingHints(new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON));
        }
        try {
            if (!hasGeometry) {
                graphics.setColor(Color.BLACK);
                int y = imageSize.height / 2;
                Font font = new Font(Font.SERIF, Font.BOLD, 14);
                graphics.setFont(font);
                graphics.drawString(Localisation.getString(RenderPanelImpl.class, "RenderPanelImpl.error1"), 10, y - 14);
            } else {
                if (rasterLayer != null) {
                    ReferencedEnvelope bounds = rasterLayer.getBounds();
                    renderer.paint(graphics, imageSize, bounds);
                }
                this.bImage = image;
            }
        } finally {
            graphics.dispose();
        }
    } finally {
        map.dispose();
    }
}
Also used : MapContent(org.geotools.map.MapContent) HashMap(java.util.HashMap) AbstractGridCoverage2DReader(org.geotools.coverage.grid.io.AbstractGridCoverage2DReader) ArrayList(java.util.ArrayList) LabelCacheImpl(org.geotools.renderer.label.LabelCacheImpl) GridReaderLayer(org.geotools.map.GridReaderLayer) FeatureLayer(org.geotools.map.FeatureLayer) Layer(org.geotools.map.Layer) BufferedImage(java.awt.image.BufferedImage) RenderingHints(java.awt.RenderingHints) Font(java.awt.Font) Graphics2D(java.awt.Graphics2D) DataSourceInterface(com.sldeditor.datasource.DataSourceInterface) GridReaderLayer(org.geotools.map.GridReaderLayer) ReferencedEnvelope(org.geotools.geometry.jts.ReferencedEnvelope) MapViewport(org.geotools.map.MapViewport)

Example 3 with LabelCacheImpl

use of org.geotools.renderer.label.LabelCacheImpl in project sldeditor by robward-scisys.

the class RenderPanelImpl method internal_renderMap.

/**
 * Internal_render map.
 *
 * @param layers the layers
 * @param bounds the bounds
 * @param imageSize the image size
 * @param hasGeometry the has geometry
 * @param dpi the dpi
 */
private void internal_renderMap(List<Layer> layers, ReferencedEnvelope bounds, Rectangle imageSize, boolean hasGeometry, int dpi) {
    MapContent map = new MapContent();
    map.addLayers(layers);
    try {
        Map<Object, Object> hints = new HashMap<Object, Object>();
        if (OVERRIDE_DPI) {
            hints.put(StreamingRenderer.DPI_KEY, dpi);
        }
        // This ensures all the labelling is cleared
        hints.put(StreamingRenderer.LABEL_CACHE_KEY, new LabelCacheImpl());
        renderer.setRendererHints(hints);
        renderer.setMapContent(map);
        BufferedImage image = new BufferedImage(imageSize.width, imageSize.height, BufferedImage.TYPE_INT_ARGB);
        Graphics2D graphics = image.createGraphics();
        if (useAntiAlias) {
            graphics.setRenderingHints(new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON));
        }
        try {
            if (!hasGeometry) {
                graphics.setColor(Color.BLACK);
                int y = imageSize.height / 2;
                Font font = new Font(Font.SERIF, Font.BOLD, 14);
                graphics.setFont(font);
                graphics.drawString(Localisation.getString(RenderPanelImpl.class, "RenderPanelImpl.error1"), 10, y - 14);
            } else {
                renderer.paint(graphics, imageSize, bounds);
                this.bImage = image;
            }
        } finally {
            graphics.dispose();
        }
    } finally {
        map.dispose();
    }
}
Also used : MapContent(org.geotools.map.MapContent) HashMap(java.util.HashMap) LabelCacheImpl(org.geotools.renderer.label.LabelCacheImpl) BufferedImage(java.awt.image.BufferedImage) RenderingHints(java.awt.RenderingHints) Font(java.awt.Font) Graphics2D(java.awt.Graphics2D)

Aggregations

LabelCacheImpl (org.geotools.renderer.label.LabelCacheImpl)3 Font (java.awt.Font)2 Graphics2D (java.awt.Graphics2D)2 RenderingHints (java.awt.RenderingHints)2 BufferedImage (java.awt.image.BufferedImage)2 HashMap (java.util.HashMap)2 MapContent (org.geotools.map.MapContent)2 DataSourceInterface (com.sldeditor.datasource.DataSourceInterface)1 ArrayList (java.util.ArrayList)1 AbstractGridCoverage2DReader (org.geotools.coverage.grid.io.AbstractGridCoverage2DReader)1 ReferencedEnvelope (org.geotools.geometry.jts.ReferencedEnvelope)1 FeatureLayer (org.geotools.map.FeatureLayer)1 GridReaderLayer (org.geotools.map.GridReaderLayer)1 Layer (org.geotools.map.Layer)1 MapViewport (org.geotools.map.MapViewport)1 StreamingRenderer (org.geotools.renderer.lite.StreamingRenderer)1