public static void writeGeometry ( ByteWriter writer , Geometry geometry ) throws IOException { // Write the single byte order byte byte byteOrder = writer . getByteOrder ( ) == ByteOrder . BIG_ENDIAN ? ( byte ) 0 : ( byte ) 1 ; writer . writeByte ( byteOrder ) ; // Write the geometry type integer writer . writeInt ( GeometryCodes . getCode ( geometry ) ) ; GeometryType geometryType = geometry . getGeometryType ( ) ; switch ( geometryType ) { case GEOMETRY : throw new SFException ( "Unexpected Geometry Type of " + geometryType . name ( ) + " which is abstract" ) ; case POINT : writePoint ( writer , ( Point ) geometry ) ; break ; case LINESTRING : writeLineString ( writer , ( LineString ) geometry ) ; break ; case POLYGON : writePolygon ( writer , ( Polygon ) geometry ) ; break ; case MULTIPOINT : writeMultiPoint ( writer , ( MultiPoint ) geometry ) ; break ; case MULTILINESTRING : writeMultiLineString ( writer , ( MultiLineString ) geometry ) ; break ; case MULTIPOLYGON : writeMultiPolygon ( writer , ( MultiPolygon ) geometry ) ; break ; case GEOMETRYCOLLECTION : case MULTICURVE : case MULTISURFACE : writeGeometryCollection ( writer , ( GeometryCollection < ? > ) geometry ) ; break ; case CIRCULARSTRING : writeCircularString ( writer , ( CircularString ) geometry ) ; break ; case COMPOUNDCURVE : writeCompoundCurve ( writer , ( CompoundCurve ) geometry ) ; break ; case CURVEPOLYGON : writeCurvePolygon ( writer , ( CurvePolygon < ? > ) geometry ) ; break ; case CURVE : throw new SFException ( "Unexpected Geometry Type of " + geometryType . name ( ) + " which is abstract" ) ; case SURFACE : throw new SFException ( "Unexpected Geometry Type of " + geometryType . name ( ) + " which is abstract" ) ; case POLYHEDRALSURFACE : writePolyhedralSurface ( writer , ( PolyhedralSurface ) geometry ) ; break ; case TIN : writeTIN ( writer , ( TIN ) geometry ) ; break ; case TRIANGLE : writeTriangle ( writer , ( Triangle ) geometry ) ; break ; default : throw new SFException ( "Geometry Type not supported: " + geometryType ) ; } }
Write a geometry to the byte writer