/** * Writes a linearRing. * * @param geometry * @param writer * @throws IOException */ public void writeLinearRing( LinearRing geometry, Writer writer ) throws IOException { if ( flags.contains( WKTFlag.USE_DKT ) ) { writer.append( "LINEARRING " ); appendObjectProps( writer, geometry ); LineString ls = new DefaultLineString( geometry.getId(), geometry.getCoordinateSystem(), geometry.getPrecision(), geometry.getControlPoints() ); writer.append( '(' ); writeLineStringWithoutPrefix( ls, writer ); writer.append( ')' ); } else if ( flags.contains( WKTFlag.USE_LINEARRING ) ) { writer.append( "LINEARRING " ); LineString ls = new DefaultLineString( geometry.getId(), geometry.getCoordinateSystem(), geometry.getPrecision(), geometry.getControlPoints() ); writer.append( '(' ); writeLineStringWithoutPrefix( ls, writer ); writer.append( ')' ); } else { LineString ls = new DefaultLineString( geometry.getId(), geometry.getCoordinateSystem(), geometry.getPrecision(), geometry.getControlPoints() ); writeLineString( ls, writer ); } }
/** * Writes a CURVE * * @param geometry * @param writer * @throws IOException */ public void writeCurveGeometry( Curve geometry, Writer writer ) throws IOException { if ( flags.contains( WKTFlag.USE_DKT ) ) { writer.append( "CURVE " ); appendObjectProps( writer, geometry ); writer.append( '(' ); writeCurveSegments( geometry, writer ); writer.append( ')' ); } else if ( flags.contains( WKTFlag.USE_SQL_MM ) ) { // s.append( "COMPOUNDCURVE(" ); throw new UnsupportedOperationException( "Handling curves within 'SQL-MM Part 3' is not implemented yet." ); } else { CurveLinearizer cl = new CurveLinearizer( new GeometryFactory() ); LinearizationCriterion crit = new NumPointsCriterion( linearizedControlPoints ); Curve c = cl.linearize( geometry, crit ); LineString ls = new DefaultLineString( c.getId(), c.getCoordinateSystem(), c.getPrecision(), c.getControlPoints() ); writeLineString( ls, writer ); } }
/** * Writes a CURVE * * @param geometry * @param writer * @throws IOException */ public void writeCurve( Curve geometry, Writer writer ) throws IOException { switch ( geometry.getCurveType() ) { case Curve: writeCurveGeometry( geometry, writer ); break; case LineString: writeLineString( (LineString) geometry, writer ); break; case OrientableCurve: writeCurveGeometry( geometry, writer ); break; case CompositeCurve: writeCompositeCurve( (CompositeCurve) geometry, writer ); break; case Ring: writeRing( (Ring) geometry, writer ); break; } }