--- name: load_geojson_polygons kind: function lang: py domain: geo version: "1.0.0" purity: impure signature: "def load_geojson_polygons(path: str | Path) -> list[list[list[tuple[float, float]]]]" description: "Lee un GeoJSON y devuelve los polígonos como listas de anillos de tuplas (x, y). Polygon produce 1 polígono; MultiPolygon produce N polígonos." tags: [geo, geojson, polygon, io, parse] uses_functions: [] uses_types: [] returns: [] returns_optional: false error_type: "error_go_core" imports: ["json", "pathlib"] params: - name: path desc: "Ruta al archivo GeoJSON. Puede ser str o Path." output: "Lista de polígonos. Cada polígono es lista de anillos; cada anillo es lista de tuplas (x, y) float." tested: true tests: - "polygon simple produce 1 polígono con 1 anillo" - "archivo inexistente lanza FileNotFoundError" test_file_path: "python/functions/geo/tests/test_load_geojson_polygons.py" file_path: "python/functions/geo/load_geojson_polygons.py" source_repo: "internal:footprint_aurgi" source_license: "internal-aurgi" source_file: "zonas_mapas_aurgi/backend/app.py:688" --- ## Ejemplo ```python from geo.load_geojson_polygons import load_geojson_polygons polygons = load_geojson_polygons("boundary.geojson") # polygons[0] → lista de anillos del primer polígono # polygons[0][0][0] → (lon, lat) del primer punto del exterior ``` ## Notas Soporta Polygon y MultiPolygon. Geometrías nulas se omiten. Los puntos de cada anillo se convierten a tuplas (x, y) descartando la coordenada Z si existe. Lanza FileNotFoundError si el archivo no existe.