public Geometry read()

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);
    }
  }