estimateBytes method
Estimate how much bytes a geometry will need in WKB.
@param geom Geometry to estimate. @return estimated number of bytes
Implementation
int estimateBytes(Geometry geom) {
int result = 0;
// write endian flag
result += 1;
// write typeword
result += 4;
if (geom.getSRID() != BinaryParser.UNKNOWN_SRID) {
result += 4;
}
EGeometryType geometryType = EGeometryType.forGeometry(geom);
switch (geometryType) {
case EGeometryType.POINT:
result += estimatePoint(geom.getCoordinate() ?? Coordinate.empty2D());
break;
case EGeometryType.LINESTRING:
result += estimateLineString(geom as LineString);
break;
case EGeometryType.POLYGON:
result += estimatePolygon(geom as Polygon);
break;
case EGeometryType.MULTIPOINT:
result += estimateMultiPoint(geom as MultiPoint);
break;
case EGeometryType.MULTILINESTRING:
result += estimateMultiLineString(geom as MultiLineString);
break;
case EGeometryType.MULTIPOLYGON:
result += estimateMultiPolygon(geom as MultiPolygon);
break;
case EGeometryType.GEOMETRYCOLLECTION:
result += estimateCollection(geom as GeometryCollection);
break;
default:
throw ArgumentError("Unknown Geometry Type: $geometryType");
}
return result;
}