"""Calculo del bounding box (minx, miny, maxx, maxy) de un poligono.""" def polygon_bbox(polygon: list[list[tuple[float, float]]]) -> tuple[float, float, float, float]: """Calcula el bounding box que envuelve todos los anillos del poligono. Args: polygon: lista de anillos [(lon, lat), ...]; puede tener varios anillos (exterior + holes). Returns: Tupla (minx, miny, maxx, maxy) con las coordenadas extremas del poligono. """ xs = [pt[0] for ring in polygon for pt in ring] ys = [pt[1] for ring in polygon for pt in ring] return min(xs), min(ys), max(xs), max(ys)