From: Ian T. <ijt...@gm...> - 2017-09-15 16:19:43
|
>From a quick look it seems that you dispose of the map before you return it to program in featuresToMapContent which is probably not what you want to do Ian On 15 September 2017 at 15:56, alban crozier <cro...@gm...> wrote: > Hi. I am alban I 'm a french beginner in Geotools. > > > > For my current project I shall build a png image only containing point for > > each cities of 5000hab in a defined square. > > So only black points and all the image should be transparent. > > > > I got my features in a collection, I got my Enveloppe on the earth. > > Then I build a MapContent then I add the layer of all features, styling the > > layer with black points. > > then I save the MapContent using ImageWriter and GTRender. > > > > My code is very very similar to the geotools tutorial. > > But in result I only get a white png file with no point. > > ******************************************************* > > /** > > * Features to map content. > > * > > * @param envelope the feature envelope > > * @param featuresSource the features source > > * @param imageWidth the image width > > * @param imageHeight the image height > > * @return the map content > > * @throws CartographyException the cartography exception > > */ > > public static MapContent featuresToMapContent(final Envelope2D > envelope, > > final FeatureCollection<SimpleFeatureType, > > SimpleFeature> featuresSource, final int imageWidth, > final int > > imageHeight) throws CartographyException { > > > > // Create a map viewport > > final MapViewport viewport = new MapViewport() ; > > viewport.setBounds(new ReferencedEnvelope(envelope)); > > > > viewport.setCoordinateReferenceSystem(envelope. > getCoordinateReferenceSystem()); > > viewport.setScreenArea(new Rectangle(imageWidth, imageHeight)); > > > > // create Mapcontent > > final MapContent map = new MapContent(); > > map.setTitle("Map"); > > map.setViewport(viewport); > > > > // Create a basic Style to render the features > > final Style style = ShapeUtils.createPointStyle(Color.BLACK, 5); > > style.featureTypeStyles(); > > > > // Add the features and the associated Style object to > > // the MapContent as a new Layer > > final Layer layer = new FeatureLayer(featuresSource, style, > > "featuresLayer"); > > layer.setVisible(true); > > layer.setSelected(true); > > > > //add layer and dispose Map > > map.addLayer(layer); > > map.dispose(); > > > > return map; > > } > > > > > > > > > > /** > > * Save image. > > * > > * @param map the map > > * @param outPutFile the output png file > > * @param imageWidth the image width > > * @param imageHeight the image height > > * @throws CartographyException the cartography exception > > */ > > public static void saveImage(final MapContent map, final File > > outPutFile, final int imageWidth, final int imageHeight) throws > > CartographyException { > > try { > > // get the renderer > > final GTRenderer renderer = new StreamingRenderer(); > > renderer.setMapContent(map); > > > > // define bounds : mapbounds and screenToDisplay > > final ReferencedEnvelope mapBounds = > map.getViewport().getBounds(); > > final Rectangle imageBounds = new > > Rectangle(0,0,imageWidth,imageHeight); > > > > // create the image > > final BufferedImage image = new BufferedImage(imageBounds. > width, > > imageBounds.height, BufferedImage.TYPE_INT_RGB); > > final Graphics2D gr = image.createGraphics(); > > gr.setPaint(Color.WHITE); > > gr.fill(imageBounds); > > gr.dispose(); > > > > // paint the image > > final AffineTransform world2screen = > > RendererUtilities.worldToScreenTransform(mapBounds, imageBounds); > > renderer.paint(gr, imageBounds, mapBounds, world2screen); > > ImageIO.write(image, "png", outPutFile); > > } catch (IOException e) { > > throw new CartographyException(e); > > } > > } > > ************************************************ > > > > > > I read almost all internet on this subject and I don't find my mistake. If > > you would have a look it will be greate for me. Thanks a lot ! > > Alban > > ------------------------------------------------------------ > ------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ > GeoTools-GT2-Users mailing list > Geo...@li... > https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users > > -- Ian Turton |