parseEWKB static method
Implementation
static Geometry parseEWKB(Uint8List bytes) {
final byteOrder = ByteOrder.read(bytes.first);
final reader = ByteDataReader(endian: byteOrder.endian);
reader.add(bytes);
reader.readInt8();
final typeDef = reader.readUint32();
final hasZ = typeDef & wkbZ != 0;
final hasM = typeDef & wkbM != 0;
final hasSRID = typeDef & wkbSRID != 0;
final baseType = typeDef & ~wkbZ & ~wkbM & ~wkbSRID;
final type = GeometryType.read(baseType);
final srid = hasSRID ? reader.readUint32() : null;
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);
}
}