Files
fn_registry/python/functions/infra/nominatim_reverse_geocode.md
T
egutierrez cbc4c5eafa feat: add Python core and infra functions — PWA, geocoding, POI matching
Nuevas funciones Python: build_guide_prompt, generate_pwa_manifest,
generate_service_worker, match_pois_to_interests (core), nominatim_reverse_geocode,
ollama_chat, overpass_nearby_pois (infra). Incluye tests unitarios.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 23:47:19 +02:00

2.5 KiB

name, kind, lang, domain, version, purity, signature, description, tags, params, output, uses_functions, uses_types, returns, returns_optional, error_type, imports, tested, tests, test_file_path, file_path
name kind lang domain version purity signature description tags params output uses_functions uses_types returns returns_optional error_type imports tested tests test_file_path file_path
nominatim_reverse_geocode function py infra 1.0.0 impure def nominatim_reverse_geocode(lat: float, lon: float, lang: str = 'es') -> dict Reverse geocoding usando Nominatim (OpenStreetMap). Convierte coordenadas lat/lon a una dirección estructurada con calle, ciudad, país y otros campos normalizados.
geocoding
nominatim
openstreetmap
osm
reverse-geocoding
geo
location
address
name desc
lat Latitud en grados decimales (rango -90 a 90).
name desc
lon Longitud en grados decimales (rango -180 a 180).
name desc
lang Código de idioma ISO 639-1 para la respuesta (ej: 'es', 'en', 'fr'). Por defecto 'es'.
Diccionario con campos normalizados: display_name (dirección completa legible), street (calle/road), house_number, neighbourhood, city (city→town→village), state, country, postcode, lat, lon, osm_type (node/way/relation), osm_id. Campos ausentes retornan string vacío.
false error_go_core
urllib.request
urllib.parse
json
false
python/functions/infra/nominatim_reverse_geocode.py

Ejemplo

from infra.nominatim_reverse_geocode import nominatim_reverse_geocode

addr = nominatim_reverse_geocode(40.4168, -3.7038)
# {
#   "display_name": "Puerta del Sol, Sol, Madrid, ...",
#   "street": "Puerta del Sol",
#   "house_number": "",
#   "neighbourhood": "Sol",
#   "city": "Madrid",
#   "state": "Comunidad de Madrid",
#   "country": "España",
#   "postcode": "28013",
#   "lat": 40.4168,
#   "lon": -3.7038,
#   "osm_type": "way",
#   "osm_id": 12345678
# }

# Con idioma inglés
addr_en = nominatim_reverse_geocode(48.8566, 2.3522, lang="en")
# {"city": "Paris", "country": "France", ...}

Notas

  • Usa urllib.request de stdlib — sin dependencias externas.
  • El header User-Agent: fn_registry/1.0 es obligatorio según la política de uso de Nominatim.
  • Timeout de 5 segundos. Para coordenadas en zonas remotas puede necesitarse más.
  • Campo city se resuelve con fallback: city → town → village → "".
  • lat/lon del resultado son los del objeto OSM encontrado, que puede diferir ligeramente de los de entrada.
  • Nominatim tiene límite de 1 request/segundo por IP. Para uso intensivo, considerar un servidor propio.
  • Lanza RuntimeError en errores HTTP o de red.