@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);
  }
Ejemplo n.º 2
0
  /**
   * Set the renderer for this map pane.
   *
   * @param renderer the renderer to use
   */
  public void setRenderer(GTRenderer renderer) {
    if (renderer != null) {
      Map<Object, Object> hints;
      if (renderer instanceof StreamingRenderer) {
        hints = renderer.getRendererHints();
        if (hints == null) {
          hints = new HashMap<Object, Object>();
        }
        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);
        }
        renderer.setRendererHints(hints);

        if (this.content != null) {
          renderer.setMapContent(this.content);
        }
      }
    }

    this.renderer = renderer;
  }