import java.awt.Graphics2D; import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io.File; import java.net.URL; import javax.imageio.ImageIO; import org.geotools.data.FeatureSource; import org.geotools.data.shapefile.ShapefileDataStore; import org.geotools.factory.CommonFactoryFinder; import org.geotools.geometry.jts.ReferencedEnvelope; import org.geotools.map.DefaultMapContext; import org.geotools.map.DefaultMapLayer; import org.geotools.map.MapContext; import org.geotools.map.MapLayer; import org.geotools.renderer.lite.StreamingRenderer; import org.geotools.styling.SLDParser; import org.geotools.styling.Style; import org.geotools.styling.StyleFactory; import org.opengis.feature.simple.SimpleFeature; import org.opengis.feature.simple.SimpleFeatureType; /** * Hello world! * */ public class App { public static void main(String[] args) throws Exception { StyleFactory styleFactory = CommonFactoryFinder.getStyleFactory(null); SLDParser parser = new SLDParser(styleFactory, new URL("file:///home/dwins/Projects/geoserver/data/release/styles/popshade.sld")); Style style = parser.readXML()[0]; ShapefileDataStore shapefile = new ShapefileDataStore(new URL("file:///home/dwins/Projects/geoserver/data/release/data/shapefiles/states.shp")); FeatureSource features = shapefile.getFeatureSource(shapefile.getTypeNames()[0]); MapContext context = new DefaultMapContext(new MapLayer[]{ new DefaultMapLayer(features, style) }); BufferedImage image = new BufferedImage(300, 300, BufferedImage.TYPE_INT_ARGB); Graphics2D graphics = image.createGraphics(); Rectangle screenArea = new Rectangle(0, 0, 300, 300); ReferencedEnvelope mapArea = features.getBounds(); StreamingRenderer renderer = new StreamingRenderer(); renderer.setContext(context); renderer.paint(graphics, screenArea, mapArea); ImageIO.write(image, "png", new File("/home/dwins/states.png")); } }