greenwich/tile.py
def from_bbox(bbox, zlevs):
    """Yields tile (x, y, z) tuples for a bounding box and zoom levels.

    Arguments:
    bbox - bounding box as a 4-length sequence
    zlevs - sequence of tile zoom levels
    """
    env = Envelope(bbox)
    for z in zlevs:
        corners = [to_tile(*coord + (z,)) for coord in (env.ul, env.lr)]
        xs, ys = [range(p1, p2 + 1) for p1, p2 in zip(*corners)]
        for coord in itertools.product(xs, ys, (z,)):
            yield coord
def from_bbox(bbox, zlevs):
    """Yields tile (x, y, z) tuples for a bounding box and zoom levels.

    Arguments:
    bbox - bounding box as a 4-length sequence
    zlevs - sequence of tile zoom levels
    """
    env = Envelope(bbox)
    for z in zlevs:
        corners = [to_tile(*coord + (z,)) for coord in (env.ul, env.lr)]
        xs, ys = [range(p1, p2 + 1) for p1, p2 in zip(*corners)]
        for coord in itertools.product(xs, ys, (z,)):
            yield coord
Yields tile (x, y, z) tuples for a bounding box and zoom levels.

    Arguments:
    bbox - bounding box as a 4-length sequence
    zlevs - sequence of tile zoom levels