Files
fn_registry/kotlin/functions/infra/nominatim_reverse_geocode.md
T
egutierrez b1016ec845 chore: add Kotlin directory structure, update registry.db and gitignore
Añade estructura inicial kotlin/functions/, actualiza registry.db con todos
los cambios indexados, y ajusta .gitignore.

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

2.4 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, tested, tests, test_file_path, file_path, params, output
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports tested tests test_file_path file_path params output
nominatim_reverse_geocode function kt infra 1.0.0 impure fun nominatimReverseGeocode(lat: Double, lon: Double, lang: String = "es"): GeocodedLocation Reverse geocoding usando Nominatim (OpenStreetMap). Convierte coordenadas lat/lon a una dirección estructurada (calle, ciudad, país, etc.) para Android/Kotlin sin dependencias externas.
geocoding
nominatim
openstreetmap
location
address
infra
android
kotlin
false error_go_core
org.json.JSONObject
java.net.HttpURLConnection
java.net.URL
false
kotlin/functions/infra/nominatim_reverse_geocode.kt
name desc
lat Latitud en grados decimales (-90.0 a 90.0).
name desc
lon Longitud en grados decimales (-180.0 a 180.0).
name desc
lang Código de idioma ISO 639-1 para la respuesta de Nominatim. Por defecto "es" (español).
GeocodedLocation con los campos normalizados: displayName, street, houseNumber, neighbourhood, city, state, country, postcode, lat, lon, osmType, osmId.

Ejemplo

val loc = nominatimReverseGeocode(40.4168, -3.7038)
println(loc.city)        // "Madrid"
println(loc.street)      // "Calle Mayor"
println(loc.country)     // "España"
println(loc.displayName) // cadena completa de Nominatim

Comportamiento

  • Realiza GET a https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=...&lon=...&accept-language=...&zoom=18.
  • Cabecera User-Agent: fn_registry/1.0 obligatoria por política de uso de Nominatim.
  • Timeout de 5 segundos tanto para conexión como para lectura.
  • Usa solo java.net.HttpURLConnection y org.json.JSONObject — disponibles en el Android SDK sin dependencias externas.
  • Resolución de city: prueba address.cityaddress.townaddress.village"".
  • Resolución de neighbourhood: prueba address.neighbourhoodaddress.suburb"".
  • Lanza RuntimeException si el HTTP status no es 200 o si falla la lectura de la respuesta.

Notas

Función paralela a nominatim_reverse_geocode_py_infra pero adaptada para Android/Kotlin. No llamar desde el hilo principal de Android — usar Dispatchers.IO o un ExecutorService. El campo zoom=18 maximiza el detalle de la dirección (nivel de número de portal).