cbc4c5eafa
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>
2.5 KiB
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. |
|
|
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 |
|
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.requestde stdlib — sin dependencias externas. - El header
User-Agent: fn_registry/1.0es obligatorio según la política de uso de Nominatim. - Timeout de 5 segundos. Para coordenadas en zonas remotas puede necesitarse más.
- Campo
cityse resuelve con fallback:city → town → village → "". lat/londel 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
RuntimeErroren errores HTTP o de red.