@Override public String toString() { String wkt = WKTWriter.write( this ); if ( wkt.length() > 1000 ) { return wkt.substring( 0, 1000 ) + " [...]"; } return wkt; } }
writeSurfaceGeometry( geometry, writer ); break; case Polygon: writePolygon( (Polygon) geometry, writer ); break; case PolyhedralSurface: writeSurfaceGeometry( geometry, writer ); break; case TriangulatedSurface: writeSurfaceGeometry( geometry, writer ); break; case Tin: writeTin( (Tin) geometry, writer ); break; case CompositeSurface: writeSurfaceGeometry( geometry, writer ); break; case OrientableSurface: writeSurfaceGeometry( geometry, writer ); break;
/** * 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; } }
@Override public Geometry toParticle( ResultSet rs, int colIndex ) throws SQLException { Object sqlValue = rs.getObject( colIndex ); try { if ( sqlValue != null ) { if ( sqlValue instanceof byte[] ) { if ( is2d ) { return WKBReader.read( (byte[]) sqlValue, crs ); } // hur hur, not using cp1252 any more, are we? sqlValue = new String( (byte[]) sqlValue, "UTF-16LE" ); } return new WKTReader( crs ).read( sqlValue.toString() ); } } catch ( Throwable e ) { throw new SQLException( e ); } return null; }
writeMultiGeometryGeometry( geometry, writer ); break; case MULTI_POINT: writeMultiPoint( (MultiPoint) geometry, writer ); break; case MULTI_CURVE: writeMultiCurve( (MultiCurve) geometry, writer ); break; case MULTI_LINE_STRING: writeMultiLineString( (MultiLineString) geometry, writer ); break; case MULTI_SURFACE: writeMultiSurface( (MultiSurface) geometry, writer ); break; case MULTI_POLYGON: writeMultiPolygon( (MultiPolygon) geometry, writer ); break; case MULTI_SOLID: writeMultiSolid( (MultiSolid) geometry, writer ); break;
@Override public void setParticle( PreparedStatement stmt, Geometry particle, int paramIndex ) throws SQLException { if ( particle == null ) { stmt.setObject( paramIndex, null ); return; } particle = getCompatibleGeometry( particle ); if ( is2d ) { try { stmt.setBytes( paramIndex, WKBWriter.write( particle ) ); } catch ( Throwable e ) { throw new SQLException( e ); } } else { stmt.setString( paramIndex, WKTWriter.write( particle ) ); } }
private void exportAsPos( Point point ) throws XMLStreamException, UnknownCRSException, TransformationException { writer.writeStartElement( gmlNs, "pos" ); double[] ordinates = getTransformedCoordinate( point.getCoordinateSystem(), point.getAsArray() ); writer.writeCharacters( formatter.format( ordinates[0] ) ); for ( int i = 1; i < ordinates.length; i++ ) { writer.writeCharacters( " " + formatter.format( ordinates[i] ) ); } writer.writeEndElement(); }
@Override public Geometry toParticle( ResultSet rs, int colIndex ) throws SQLException { byte[] wkb = rs.getBytes( colIndex ); if ( wkb == null ) { return null; } try { return WKBReader.read( wkb, crs ); } catch ( Throwable t ) { throw new IllegalArgumentException( t.getMessage(), t ); } }
/** * Writes a geometric primitive * * @param geometry * @param writer * @throws IOException */ public void writeGeometricPrimitive( GeometricPrimitive geometry, Writer writer ) throws IOException { switch ( geometry.getPrimitiveType() ) { case Point: writePoint( (Point) geometry, writer ); break; case Curve: writeCurve( (Curve) geometry, writer ); break; case Surface: writeSurface( (Surface) geometry, writer ); break; case Solid: writeSolid( (Solid) geometry, writer ); break; } }
/** * Create a wkt writer with the given flags and formatter. * * @param flags * signaling the capabilities of this writer, if <code>null</code> only some geometries can be exported * (all dialects are disabled). * @param formatter * to use, if <code>null</code> the default decimal formatter with 5 decimals is used. */ public WKTWriter( Set<WKTFlag> flags, CoordinateFormatter formatter ) { this.flags = flags; if ( this.flags == null ) { this.flags = new HashSet<WKTFlag>(); } if ( formatter == null ) { this.formatter = new DecimalCoordinateFormatter(); } else { this.formatter = formatter; } }
/** * * * @param geometry * that has to be written * @param writer * that is used * @throws IOException */ public void writeGeometry( Geometry geometry, Writer writer ) throws IOException { switch ( geometry.getGeometryType() ) { case COMPOSITE_GEOMETRY: writeCompositeGeometry( (CompositeGeometry<GeometricPrimitive>) geometry, writer ); break; case ENVELOPE: writeEnvelope( (Envelope) geometry, writer ); break; case MULTI_GEOMETRY: writeMultiGeometry( (MultiGeometry<? extends Geometry>) geometry, writer ); break; case PRIMITIVE_GEOMETRY: writeGeometricPrimitive( (GeometricPrimitive) geometry, writer ); break; } }
public Geometry read( Reader reader ) throws ParseException { try { return read( IOUtils.toString( reader ) ); } catch ( IOException e ) { // wrap the exception nicely as to not break 172643521 API calls throw new ParseException( e ); } }
/** * Writes the POLYGON * * @param geometry * @param writer * @throws IOException */ public void writePolygon( Polygon geometry, Writer writer ) throws IOException { writer.append( "POLYGON " ); if ( flags.contains( WKTFlag.USE_DKT ) ) { appendObjectProps( writer, geometry ); } writePolygonWithoutPrefix( geometry, writer ); }
/** * Writes a ring. * * @param geometry * @param writer * @throws IOException */ public void writeRing( Ring geometry, Writer writer ) throws IOException { switch ( geometry.getRingType() ) { case LinearRing: writeLinearRing( (LinearRing) geometry, writer ); break; case Ring: writeCurveGeometry( geometry, writer ); break; } }
/** * Writes a LineString. * * @param geometry * @param writer * @throws IOException */ public void writeLineString( LineString geometry, Writer writer ) throws IOException { writer.append( "LINESTRING " ); if ( flags.contains( WKTFlag.USE_DKT ) ) { appendObjectProps( writer, geometry ); } writer.append( '(' ); writeLineStringWithoutPrefix( geometry, writer ); writer.append( ')' ); }
/** * Writes the POINT * * @param geometry * @param writer * @throws IOException */ public void writePoint( Point geometry, Writer writer ) throws IOException { writer.append( "POINT " ); if ( flags.contains( WKTFlag.USE_DKT ) ) { appendObjectProps( writer, geometry ); } writer.append( '(' ); writePointWithoutPrefix( geometry, writer ); writer.append( ')' ); }
/** * * @param curve * @param writer * @throws IOException */ private void writeArc( Arc curve, Writer writer ) throws IOException { writer.append( "ARC " ); // if(flags.contains( WKTFlag.USE_DKT )){ // appendObjectProps( writer, (Geometry) createArc ); // } writer.append( '(' ); writePointWithoutPrefix( curve.getPoint1(), writer ); writer.append( ',' ); writePointWithoutPrefix( curve.getPoint2(), writer ); writer.append( ',' ); writePointWithoutPrefix( curve.getPoint3(), writer ); writer.append( ')' ); }
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 ); }
public Geometry read( String wkt ) throws ParseException { try { org.postgis.Geometry g = org.postgis.PGgeometry.geomFromString( wkt ); byte[] bs = new BinaryWriter().writeBinary( g ); return WKBReader.read( bs, crs ); } catch ( SQLException e ) { e.printStackTrace(); // wrap the exception nicely as to not break 172643521 API calls throw new ParseException( e ); } }
/** * * @param curve * @param writer * @throws IOException */ private void writeCircle( Circle curve, Writer writer ) throws IOException { writer.append( "CIRCLE " ); // if(flags.contains( WKTFlag.USE_DKT )){ // appendObjectProps( writer, (Geometry) createArc ); // } writer.append( '(' ); writePointWithoutPrefix( curve.getPoint1(), writer ); writer.append( ',' ); writePointWithoutPrefix( curve.getPoint2(), writer ); writer.append( ',' ); writePointWithoutPrefix( curve.getPoint3(), writer ); writer.append( ')' ); }