read static method

Geometry read(
  1. int? srid,
  2. ByteDataReader reader,
  3. bool hasZ,
  4. bool hasM,
)

Implementation

static Geometry read(int? srid, ByteDataReader reader, bool hasZ, bool hasM) {
  reader.readUint8();
  final typeDef = reader.readUint32();
  final baseType = typeDef & ~wkbZ & ~wkbM & ~wkbSRID;
  final type = GeometryType.read(baseType);

  switch (type) {
    case GeometryType.point:
      return Point.read(srid, reader, hasZ, hasM);
    case GeometryType.lineString:
      return LineString.read(srid, reader, hasZ, hasM);
    case GeometryType.polygon:
      return Polygon.read(srid, reader, hasZ, hasM);
    case GeometryType.multiPoint:
      return MultiPoint.read(srid, reader, hasZ, hasM);
    case GeometryType.multiLineString:
      return MultiLineString.read(srid, reader, hasZ, hasM);
    case GeometryType.multiPolygon:
      return MultiPolygon.read(srid, reader, hasZ, hasM);
    case GeometryType.geometryCollection:
      return GeometryCollection.read(srid, reader, hasZ, hasM);
  }
}