2014-12-04 7 views
1

Я хотел бы улучшить качество визуализации в JMapFrameRendering в JMapFrame

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 

нет никакой разницы в качестве рендеринга с или без кода между // оказывающего START и // рендеринг END

+0

вы проверили, что любой из них отличались от значений по умолчанию? Я уверен, что мы по умолчанию по качеству –

ответ

0

Кажется, вы передаете подсказки Java2D визуализатору, а не графику. Из JavaDocs

 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

Спасибо за подсказку :) Это работает. Код ниже – mysiar

0

Рабочий код

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); 

 Смежные вопросы

  • Нет связанных вопросов^_^