/** * * Add a new layer and trigger a {@link LayerListEvent}. * * @param coverage The new layer that has been added. * @param style * @throws SchemaException * @throws FactoryRegistryException * @throws TransformException */ public MapLayer(GridCoverage coverage, Style style) throws TransformException, FactoryRegistryException, SchemaException { internal = new GridCoverageLayer((GridCoverage2D) coverage, style); }
@Override public void dispose() { preDispose(); if (coverage != null) { try { coverage.dispose(true); } catch (Exception e) { // eat me } coverage = null; } if (style != null) { style = null; } super.dispose(); }
} else if (layer instanceof GridCoverageLayer) { GridCoverageLayer gc = (GridCoverageLayer) sl; sl = new GridCoverageLayer(gc.getCoverage(), copy); } else if (layer instanceof WMSLayer) {
@Override public InfoToolResult getInfo(DirectPosition2D pos) throws Exception { InfoToolResult result = new InfoToolResult(); if (isValid()) { GridCoverage2D source = ((GridCoverageLayer) getLayer()).getCoverage(); ReferencedEnvelope env = new ReferencedEnvelope(source.getEnvelope2D()); DirectPosition2D trPos = InfoToolHelperUtils.getTransformed(pos, getContentToLayerTransform()); if (env.contains(trPos)) { Object objArray = source.evaluate(trPos); Number[] bandValues = InfoToolHelperUtils.asNumberArray(objArray); if (bandValues != null) { result.newFeature("Raw values"); for (int i = 0; i < bandValues.length; i++) { result.setFeatureValue("Band " + i, bandValues[i]); } } } } return result; } }
@Override public InfoToolResult getInfo(DirectPosition2D pos) throws Exception { InfoToolResult result = new InfoToolResult(); if (isValid()) { GridCoverage2D source = ((GridCoverageLayer) getLayer()).getCoverage(); ReferencedEnvelope env = new ReferencedEnvelope(source.getEnvelope2D()); DirectPosition2D trPos = InfoToolHelperUtils.getTransformed(pos, getContentToLayerTransform()); if (env.contains(trPos)) { Object objArray = source.evaluate(trPos); Number[] bandValues = InfoToolHelperUtils.asNumberArray(objArray); if (bandValues != null) { result.newFeature("Raw values"); for (int i = 0; i < bandValues.length; i++) { result.setFeatureValue("Band " + i, bandValues[i]); } } } } return result; }
/** * * Add a new layer and trigger a {@link LayerListEvent}. * * @param coverage The new layer that has been added. * @param style * @param title * @throws SchemaException * @throws FactoryRegistryException * @throws TransformException */ public MapLayer(GridCoverage coverage, Style style, String title) throws TransformException, FactoryRegistryException, SchemaException { internal = new GridCoverageLayer((GridCoverage2D) coverage, style, title); }
@Override public void dispose() { preDispose(); if( coverage != null ){ try{ coverage.dispose(true); }catch (Exception e) { // eat me } coverage = null; } if( style != null ){ style = null; } super.dispose(); }
/** * Add a new layer and trigger a {@link LayerListEvent} * * @param gridCoverage a GridCoverage with the new layer that will be added. */ public void addLayer(GridCoverage gridCoverage, Style style) { if (style == null) { throw new IllegalArgumentException("style cannot be null"); } if (gridCoverage instanceof GridCoverage2D) { Layer layer = new GridCoverageLayer((GridCoverage2D) gridCoverage, style); layers().add(layer); } else { throw new UnsupportedOperationException("GridCoverage2D required"); } }
/** * Add a grid coverage as a new layer to the end of the list of layers held by this context. * * <p>If a coordinate reference system has not been set for the context an attempt is made to * retrieve one from the grid coverage and use that as the context's CRS. * * @param gc the grid coverage * @param style a Style to be used when rendering the new layer */ public void addLayer(GridCoverage gc, Style style) { if (style == null) { throw new IllegalArgumentException("style cannot be null"); } // checkCRS(gc.getCoordinateReferenceSystem()); if (gc instanceof GridCoverage2D) { Layer layer = new GridCoverageLayer((GridCoverage2D) gc, style); layers().add(layer); } else { throw new UnsupportedOperationException("GridCoverage2D required"); } }
public Layer loadGeoReferencedImageFile(GridCoverage2D gc, String title) throws IOException, URISyntaxException { StyleBuilder sb = new StyleBuilder(); RasterSymbolizer rs = sb.createRasterSymbolizer(); return new GridCoverageLayer(gc, sb.createStyle(rs), ""); }
/** * * Add a new layer and trigger a {@link LayerListEvent}. * * @param coverage * The new layer that has been added. * @param style * @throws SchemaException * @throws FactoryRegistryException * @throws TransformException */ public MapLayer(GridCoverage coverage, Style style) throws TransformException, FactoryRegistryException, SchemaException { internal = new GridCoverageLayer((GridCoverage2D) coverage, style); }
@Test public void testTransformReprojectedGridCoverage() throws Exception { Style style = RendererBaseTest.loadStyle(this, "coverageCenter.sld"); GeoTiffReader reader = new GeoTiffReader(TestData.copy(this, "geotiff/world.tiff")); MapContent mc = new MapContent(); mc.addLayer(new GridCoverageLayer(reader.read(null), style)); StreamingRenderer renderer = new StreamingRenderer(); renderer.setMapContent(mc); ReferencedEnvelope reWgs84 = new ReferencedEnvelope(-70, 70, -160, 160, CRS.decode("EPSG:4326")); ReferencedEnvelope re = reWgs84.transform(CRS.decode("EPSG:3857"), true); BufferedImage image = RendererBaseTest.showRender("Lines with circle stroke", renderer, TIME, re); // if everything worked we are going to have a red dot in the middle of the map assertEquals(Color.RED, getPixelColor(image, image.getWidth() / 2, image.getHeight() / 2)); assertEquals( Color.WHITE, getPixelColor(image, image.getWidth() / 4, image.getHeight() / 2)); assertEquals( Color.WHITE, getPixelColor(image, image.getWidth() / 2, image.getHeight() / 4)); assertEquals( Color.WHITE, getPixelColor(image, image.getWidth() / 4, image.getHeight() / 4)); }
/** * * Add a new layer and trigger a {@link LayerListEvent}. * * @param coverage * The new layer that has been added. * @param style * @param title * @throws SchemaException * @throws FactoryRegistryException * @throws TransformException */ public MapLayer(GridCoverage coverage, Style style, String title) throws TransformException, FactoryRegistryException, SchemaException { internal = new GridCoverageLayer((GridCoverage2D) coverage, style, title); }
private BufferedImage composeFts(GridCoverage2D first, GridCoverage2D second) { // build the map content MapContent mc = new MapContent(); StyleBuilder sb = new StyleBuilder(); Style baseStyle = sb.createStyle(sb.createRasterSymbolizer()); mc.addLayer(new GridCoverageLayer(first, baseStyle)); FeatureTypeStyle compositeFts = sb.createFeatureTypeStyle(sb.createRasterSymbolizer()); compositeFts.getOptions().put(FeatureTypeStyle.COMPOSITE, composite); Style compositeStyle = sb.createStyle(); compositeStyle.featureTypeStyles().add(compositeFts); mc.addLayer(new GridCoverageLayer(second, compositeStyle)); // prepare the graphics for the streaming renderer and paint RenderedImage referenceImage = first.getRenderedImage(); BufferedImage blended = new BufferedImage( referenceImage.getWidth(), referenceImage.getWidth(), BufferedImage.TYPE_4BYTE_ABGR); Graphics2D graphics = blended.createGraphics(); StreamingRenderer sr = new StreamingRenderer(); sr.setMapContent(mc); sr.paint( graphics, new Rectangle(0, 0, referenceImage.getWidth(), referenceImage.getHeight()), ReferencedEnvelope.reference(first.getEnvelope())); graphics.dispose(); mc.dispose(); return blended; }
private void testCoverageStyle(Style style, String styleName) throws IOException { GridCoverage2D coverage = createCoverage(); StreamingRenderer renderer = new StreamingRenderer(); MapContent context = new MapContent(); context.addLayer(new GridCoverageLayer(coverage, style)); renderer.setMapContent(context); RenderListener listener = new RenderListener() { public void featureRenderer(SimpleFeature feature) {} public void errorOccurred(Exception e) { java.util.logging.Logger.getGlobal() .log(java.util.logging.Level.INFO, "", e); fail("Failed to render coverage"); } }; BufferedImage image = RendererBaseTest.renderImage(renderer, env, listener); File reference = new File( "./src/test/resources/org/geotools/renderer/lite/gridcoverage2d/" + styleName + ".png"); ImageAssert.assertEquals(reference, image, 0); }
mc.addLayer(new GridCoverageLayer(first, baseStyle));
mc.addLayer(new GridCoverageLayer(first, baseStyle));
mc.addLayer(new GridCoverageLayer(first, baseStyle));
mc.addLayer(new GridCoverageLayer(coverage, rst));
mapContent.addLayer(new GridCoverageLayer(oomCoverage, rasterStyle)); mapContent.addLayer(new FeatureLayer(lines, lineStyle));