---
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.
