public Set<GeometryType> geometryTypes() {
    Set<GeometryType> types = new HashSet<>();
    for (var type : primaryColumnMetadata().geometryTypes()) {
      types.add(switch (type) {
        case "Point", "MultiPoint" -> GeometryType.POINT;
        case "LineString", "MultiLineString" -> GeometryType.LINE;
        case "Polygon", "MultiPolygon" -> GeometryType.POLYGON;
        case null, default -> GeometryType.UNKNOWN;
      });
    }
    // geoarrow
    String encoding = primaryColumnMetadata().encoding();
    if (encoding.contains("polygon")) {
      types.add(GeometryType.POLYGON);
    } else if (encoding.contains("point")) {
      types.add(GeometryType.POINT);
    } else if (encoding.contains("linestring")) {
      types.add(GeometryType.LINE);
    }
    return types;
  }
Returns the {@link GeometryType GeometryTypes} that can be contained in this geoparquet file or an empty set if
unknown.
<p>
These can come from geoarrow encoding type, or the {@code geometry_types} attributes.
planetiler-core/src/main/java/com/onthegomap/planetiler/reader/parquet/GeoParquetMetadata.java