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