@Override public void render( final TextStyling styling, final String text, final Geometry geom ) { if ( geom == null ) { LOG.debug( "Trying to render null geometry." ); return; } if ( text == null || text.length() == 0 ) { LOG.debug( "Trying to render null or zero length text." ); return; } final Geometry renderGeometry = renderer.transformToWorldCrsAndClip( geom ); if ( renderGeometry == null ) { return; } final Font font = convertFont( styling ); handleGeometryTypes( styling, text, font, renderGeometry ); }
private void handleGeometryTypes( TextStyling styling, String text, Font font, Geometry geom ) { if ( geom instanceof Point ) { render( styling, font, text, (Point) geom ); } else if ( geom instanceof Surface && styling.linePlacement != null ) { render( styling, font, text, (Surface) geom ); } else if ( geom instanceof Curve && styling.linePlacement != null ) { render( styling, font, text, (Curve) geom ); } else if ( geom instanceof GeometricPrimitive ) { render( styling, font, text, geom.getCentroid() ); } else if ( geom instanceof MultiPoint ) { handleMultiGeometry( styling, text, font, (MultiPoint) geom ); } else if ( geom instanceof MultiCurve<?> && styling.linePlacement != null ) { handleMultiGeometry( styling, text, font, (MultiCurve<?>) geom ); } else if ( geom instanceof MultiLineString && styling.linePlacement != null ) { handleMultiGeometry( styling, text, font, (MultiLineString) geom ); } else if ( geom instanceof MultiGeometry<?> ) { for ( Geometry g : (MultiGeometry<?>) geom ) { render( styling, text, g ); } } else { LOG.warn( "Trying to use unsupported geometry type '{}' for text rendering.", geom.getClass().getSimpleName() ); } }
@Override public void render( TextStyling styling, String text, Collection<Geometry> geoms ) { for ( Geometry g : geoms ) { render( styling, text, g ); } }
List<LegendItem> prepareLegend( Style style, Graphics2D g, int width, int height ) { Pair<Integer, Integer> p = getLegendSize( style ); Envelope box = geofac.createEnvelope( 0, 0, p.first, p.second, null ); Java2DRenderer renderer = new Java2DRenderer( g, width, height, box ); Java2DTextRenderer textRenderer = new Java2DTextRenderer( renderer ); Java2DRasterRenderer rasterRenderer = new Java2DRasterRenderer( g, width, height, box ); return LegendItemBuilder.prepareLegend( style, renderer, textRenderer, rasterRenderer ); }
private <T extends Geometry> void handleMultiGeometry( TextStyling styling, String text, Font font, MultiGeometry<T> geom ) { for ( T g : geom ) { handleGeometryTypes( styling, text, font, g ); } }
@Override public void createLabel( TextStyling styling, String text, Geometry geom ) { if ( geom == null ) { LOG.debug( "Trying to render null geometry." ); } if ( text == null || text.length() == 0 ) { LOG.debug( "Trying to render null or zero length text." ); } geom = renderer.rendererContext.geomHelper.transform( geom ); geom = renderer.rendererContext.clipper.clipGeometry( geom ); Font font = textRenderer.convertFont( styling ); handleGeometryTypes( styling, text, font, geom ); }
void render( TextStyling styling, Font font, String text, Curve c ) { java.awt.Stroke stroke = new TextStroke( text, font, styling.linePlacement ); if ( isZero( ( (TextStroke) stroke ).getLineHeight() ) ) { return; } stroke = applyOffset( styling, stroke ); Double line = renderer.rendererContext.geomHelper.fromCurve( c, false ); if ( styling.halo != null ) { Stroke haloStroke = new HaloStroke( text, font, styling.linePlacement, styling.halo, styling.uom, renderer.rendererContext.uomCalculator ); haloStroke = applyOffset( styling, haloStroke ); renderer.rendererContext.fillRenderer.applyFill( styling.halo.fill, styling.uom ); renderer.graphics.setStroke( haloStroke ); renderer.graphics.draw( line ); } renderer.rendererContext.fillRenderer.applyFill( styling.fill, styling.uom ); renderer.graphics.setStroke( stroke ); renderer.graphics.draw( line ); }
void render( TextStyling styling, Font font, String text, Surface surface ) { for ( SurfacePatch patch : surface.getPatches() ) { if ( patch instanceof PolygonPatch ) { PolygonPatch polygonPatch = (PolygonPatch) patch; for ( Curve curve : polygonPatch.getBoundaryRings() ) { render( styling, font, text, curve ); } } else { throw new IllegalArgumentException( "Cannot render non-planar surfaces." ); } } }
public Java2DRenderContext( RenderingInfo info, Graphics2D graphics, OutputStream outputStream ) { this.graphics = graphics; this.outputStream = outputStream; renderer = new Java2DRenderer( graphics, info.getWidth(), info.getHeight(), info.getEnvelope(), info.getPixelSize() * 1000 ); textRenderer = new Java2DTextRenderer( renderer ); labelRenderer = new Java2DLabelRenderer( renderer, textRenderer ); rasterRenderer = new Java2DRasterRenderer( graphics ); tileRenderer = new Java2DTileRenderer( graphics, info.getWidth(), info.getHeight(), info.getEnvelope() ); }
private void handleGeometryTypes( TextStyling styling, String text, Font font, Geometry geom ) { if ( geom == null ) { LOG.warn( "null geometry cannot be handled." ); return; } if ( geom instanceof Point ) { labelList.add( createLabel( styling, font, text, (Point) geom ) ); } else if ( geom instanceof Surface && styling.linePlacement != null ) { textRenderer.render( styling, font, text, (Surface) geom ); } else if ( geom instanceof Curve && styling.linePlacement != null ) { textRenderer.render( styling, font, text, (Curve) geom ); } else if ( geom instanceof Polygon && styling.auto ) { handlePolygonWithAutoPlacement( styling, font, text, (Polygon) geom ); } else if ( geom instanceof GeometricPrimitive ) { labelList.add( createLabel( styling, font, text, geom.getCentroid() ) ); } else if ( geom instanceof MultiPoint ) { handleMultiGeometry( styling, text, font, (MultiPoint) geom ); } else if ( geom instanceof MultiCurve<?> && styling.linePlacement != null ) { handleMultiGeometry( styling, text, font, (MultiCurve<?>) geom ); } else if ( geom instanceof MultiLineString && styling.linePlacement != null ) { handleMultiGeometry( styling, text, font, (MultiLineString) geom ); } else if ( geom instanceof MultiGeometry<?> ) { handleMultiGeometry( styling, text, font, (MultiGeometry<?>) geom ); } else { LOG.warn( "Trying to use unsupported geometry type '{}' for text rendering.", geom.getClass().getSimpleName() ); } }