首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JMapFrame中的渲染质量

JMapFrame中的渲染质量
EN

Stack Overflow用户
提问于 2014-12-04 05:28:08
回答 2查看 314关注 0票数 1

我想提高JMapFrame的渲染质量

代码语言:javascript
复制
    this.Map = new MapContent();

    this.MainWindow = new JMapFrame(this.Map);   

    // rendering START
    GTRenderer renderer = this.MainWindow.getMapPane().getRenderer();

    java.util.Map<Object, Object> hints =   renderer.getRendererHints();

    hints.put(RenderingHints.KEY_RENDERING,RenderingHints.VALUE_RENDER_QUALITY);
    hints.put(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
    hints.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    hints.put(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE);
    hints.put(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC); 
    hints.put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
    hints.put(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);

    renderer.setRendererHints(hints);

    this.MainWindow.getMapPane().setRenderer(renderer);
    // rendering END

//呈现启动//呈现端的代码在渲染质量上没有差别。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-04 15:56:18

似乎您正在将Java2D提示传递给渲染器,而不是图形。来自JavaDocs

代码语言:javascript
复制
      Rectangle paintArea = new Rectangle(width, height);
      ReferencedEnvelope mapArea = map.getBounds();

      renderer = new StreamingRenderer();
      renderer.setContext(map);

      RenderingHints hints = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON );
      renderer.setJava2DHints(hints);

      Map rendererParams = new HashMap();
      rendererParams.put("optimizedDataLoadingEnabled",new Boolean(true) );

      renderer.setRendererHints( renderParams );

      renderer.paint(graphic, paintArea, mapArea);
票数 0
EN

Stack Overflow用户

发布于 2014-12-05 01:42:40

工作代码

代码语言:javascript
复制
    GTRenderer     renderer = this.MainWindow.getMapPane().getRenderer();
    RenderingHints hints    = new RenderingHints(RenderingHints.KEY_ANTIALIASING,
                                  RenderingHints.VALUE_ANTIALIAS_ON);    

    hints.put(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
    hints.put(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
    hints.put(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE);
    hints.put(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
    hints.put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
    hints.put(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);

    renderer.setJava2DHints(hints);

    this.MainWindow.getMapPane().setRenderer(renderer);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27286920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档