public static CoveredTiles getCoveredTiles(Geometry scaledGeom, int zoom, TileExtents.ForZoom extents)
    throws GeometryException {
    if (scaledGeom.isEmpty()) {
      return new CoveredTiles(new RoaringBitmap(), zoom);
    } else if (scaledGeom instanceof Puntal || scaledGeom instanceof Polygonal || scaledGeom instanceof Lineal) {
      return sliceIntoTiles(scaledGeom, 0, 0, zoom, extents).getCoveredTiles();
    } else if (scaledGeom instanceof GeometryCollection gc) {
      CoveredTiles result = new CoveredTiles(new RoaringBitmap(), zoom);
      for (int i = 0; i < gc.getNumGeometries(); i++) {
        result = CoveredTiles.merge(getCoveredTiles(gc.getGeometryN(i), zoom, extents), result);
      }
      return result;
    } else {
      throw new UnsupportedOperationException(
        "Unsupported JTS geometry type " + scaledGeom.getClass().getSimpleName() + " " +
          scaledGeom.getGeometryType());
    }
  }
Returns the set of tiles that {@code scaledGeom} touches at a zoom level.

@param scaledGeom The geometry in scaled web mercator coordinates where northwest is (0,0) and southeast is
                  (2^z,2^z)
@param zoom       The zoom level
@param extents    The tile extents for this zoom level.
@return A {@link CoveredTiles} instance for the tiles that are covered by this geometry.
planetiler-core/src/main/java/com/onthegomap/planetiler/render/TiledGeometry.java