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