import mercantile
from typing import List, Tuple
from .models import TilePoint

def skip_tiles(tiles: List[Tuple[int,int,int]], step: int = 3) -> List[Tuple[int,int,int]]:
    return [t for t in tiles if t[0] % step == 0 and t[1] % step == 0]

def tile_to_latlon(tile: Tuple[int,int,int]) -> TilePoint:
    x, y, z = tile
    b = mercantile.bounds(x, y, z)
    return TilePoint(lat=(b.north+b.south)/2, lon=(b.east+b.west)/2)

def tiles_to_latlon(tiles: List[Tuple[int,int,int]]) -> List[TilePoint]:
    return [tile_to_latlon(t) for t in tiles]