private void exportPolygonPatch( PolygonPatch polygonPatch ) throws XMLStreamException, UnknownCRSException, TransformationException { switch ( polygonPatch.getPolygonPatchType() ) { case POLYGON_PATCH: writer.writeStartElement( gmlNs, "PolygonPatch" ); writer.writeStartElement( gmlNs, "exterior" ); exportRing( polygonPatch.getExteriorRing() ); writer.writeEndElement(); for ( Ring ring : polygonPatch.getInteriorRings() ) { writer.writeStartElement( gmlNs, "interior" ); exportRing( ring ); writer.writeEndElement(); } writer.writeEndElement(); break; case TRIANGLE: exportTriangle( (Triangle) polygonPatch ); break; case RECTANGLE: exportRectangle( (Rectangle) polygonPatch ); break; } }
private void writePolygonPatch( String id, ICRS crs, PrecisionModel pm, PolygonPatch polyPatch, Writer writer ) throws IOException { PolygonPatchType type = polyPatch.getPolygonPatchType(); Polygon poly = null; switch ( type ) { case POLYGON_PATCH: case RECTANGLE: case TRIANGLE: poly = new DefaultPolygon( id, crs, pm, polyPatch.getExteriorRing(), polyPatch.getInteriorRings() ); break; } writePolygonWithoutPrefix( poly, writer ); }
private PolygonPatch transform( PolygonPatch patch, Transformation trans ) throws TransformationException { Ring exterior = patch.getExteriorRing(); LinearRing transformedExteriorRing = transform( exterior, trans ); PolygonPatch result = null; PolygonPatchType type = patch.getPolygonPatchType(); switch ( type ) { case POLYGON_PATCH: List<Ring> interiorRings = ( patch ).getInteriorRings(); List<Ring> transformedInteriorRings = new ArrayList<Ring>( interiorRings == null ? 0 : interiorRings.size() ); if ( interiorRings != null && !interiorRings.isEmpty() ) { for ( Ring interior : interiorRings ) { if ( interior != null ) { LinearRing lr = transform( interior, trans ); transformedInteriorRings.add( lr ); } } } result = geomFactory.createPolygonPatch( transformedExteriorRing, transformedInteriorRings ); break; case RECTANGLE: result = geomFactory.createRectangle( transformedExteriorRing ); break; case TRIANGLE: result = geomFactory.createTriangle( transformedExteriorRing ); break; } return result; }