@SuppressWarnings("unchecked")
  public void createMapFor(
      final CoordinateReferenceSystem crs,
      final com.vividsolutions.jts.geom.Envelope areaOfInterest,
      final Graphics2D graphics)
      throws IOException {

    Geometry geographicBoundingBox = getGeographicBoundingBox(crs);
    MapContext mapContext = getMapContext(crs, geographicBoundingBox, areaOfInterest);

    graphics.setColor(new Color(153, 179, 204));
    graphics.fillRect(0, 0, mapWidth, mapHeight);

    Rectangle paintArea = new Rectangle(mapWidth, mapHeight);

    mapContext.setAreaOfInterest(areaOfInterest, crs);

    GTRenderer renderer = new StreamingRenderer();
    renderer.setContext(mapContext);
    RenderingHints hints =
        new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

    renderer.setJava2DHints(hints);

    Map renderingHints = new HashMap();
    renderingHints.put("optimizedDataLoadingEnabled", Boolean.TRUE);
    renderingHints.put(StreamingRenderer.ADVANCED_PROJECTION_HANDLING_KEY, Boolean.TRUE);
    renderingHints.put(StreamingRenderer.CONTINUOUS_MAP_WRAPPING, Boolean.TRUE);
    renderer.setRendererHints(renderingHints);
    renderer.paint(graphics, paintArea, areaOfInterest);
  }