in baremaps-core/src/main/java/org/apache/baremaps/database/type/geometry/GeometryDataType.java [165:192]
public Geometry read(final ByteBuffer buffer, final int position) {
var p = position;
// Read the geometry type
var type = buffer.get(p);
p += Byte.BYTES;
// Read the geometry
if (type == 0) {
return null;
} else if (type == 1) {
return pointDataType.read(buffer, p);
} else if (type == 2) {
return lineStringDataType.read(buffer, p);
} else if (type == 3) {
return polygonDataType.read(buffer, p);
} else if (type == 4) {
return multiPointDataType.read(buffer, p);
} else if (type == 5) {
return multiLineStringDataType.read(buffer, p);
} else if (type == 6) {
return multiPolygonDataType.read(buffer, p);
} else if (type == 7) {
return geometryCollectionDataType.read(buffer, p);
} else {
throw new IllegalArgumentException("Unsupported geometry type: " + type);
}
}