def METHOD_NAME(bounding_box: str) -> Tuple[str, str]:
    # Validate the bounding_box
    if bounding_box is None:
        logging.warning(
            "No BBOX provided, running full extent... this will take a long time."
        )
        bounding_box = (-180, -90, 180, 90)
    else:
        bounding_box = bounding_box.split(",")
        if len(bounding_box) != 4:
            raise ValueError("bounding_box must be in the format: minx,miny,maxx,maxy")
        bounding_box = [float(x) for x in bounding_box]
    # The tiles are 3 x 3 degree, starting at 0,3...
    # so we need some logic to get to those numbers
    left, bottom, right, top = _unpack_bbox(bounding_box)
    x_range = range(left, right, 3)
    y_range = range(bottom, top, 3)
    for x in x_range:
        for y in y_range:
            if x < 0:
                x_str = f"W{abs(x):03d}"
            else:
                x_str = f"E{x:03d}"
            if y < 0:
                y_str = f"S{abs(y):02d}"
            else:
                y_str = f"N{y:02d}"
            yield (
                URI_TEMPLATE.format(
                    ns=y_str,
                    ew=x_str,
                    algo=map_version["algo"],
                    year=map_version["year"],
                ),
                f"{x_str}_{y_str}",
            )