/** * Writes a multiSurface. * * @param geometry * @param writer * @throws IOException */ public void writeMultiSurface( MultiSurface<Surface> geometry, Writer writer ) throws IOException { writer.append( "MULTIPOLYGON " ); if ( flags.contains( WKTFlag.USE_DKT ) ) { appendObjectProps( writer, geometry ); } writer.append( '(' ); for ( int i = 0; i < geometry.size(); i++ ) { writePolygonWithoutPrefix( geometry.get( i ), writer ); if ( i < geometry.size() - 1 ) { writer.append( ',' ); } } writer.append( ')' ); }
/** * transforms the submitted multi surface to the target coordinate reference system * * @throws TransformationException */ private MultiSurface<Surface> transform( MultiSurface<Surface> multiSurface, Transformation trans ) throws TransformationException { List<Surface> surfaces = new ArrayList<Surface>( multiSurface.size() ); for ( Surface surface : multiSurface ) { surfaces.add( transform( surface, trans ) ); } return geomFactory.createMultiSurface( multiSurface.getId(), getTargetCRS(), surfaces ); }
List<Polygon> simplifiedMembers = new ArrayList<Polygon>( ms.size() ); for ( Surface member : ms ) { Geometry simplifiedMember = simplify( member ); simplified = geomFac.createMultiPolygon( ms.getId(), ms.getCoordinateSystem(), simplifiedMembers ); break;
multiSurface.setType( type ); multiSurface.setProperties( props );
} else if ( geom instanceof MultiSurface ) { MultiSurface<Surface> ms = (MultiSurface<Surface>) geom; List<Surface> linearizedMembers = new ArrayList<Surface>( ms.size() ); for ( Surface polygon : ms ) { linearizedMembers.add( sfLinearizer.linearize( polygon, crit ) );