73d181f2b0
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>
2.4 KiB
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. |
|
false | error_go_core |
|
false | kotlin/functions/infra/nominatim_reverse_geocode.kt |
|
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.0obligatoria por política de uso de Nominatim. - Timeout de 5 segundos tanto para conexión como para lectura.
- Usa solo
java.net.HttpURLConnectionyorg.json.JSONObject— disponibles en el Android SDK sin dependencias externas. - Resolución de
city: pruebaaddress.city→address.town→address.village→"". - Resolución de
neighbourhood: pruebaaddress.neighbourhood→address.suburb→"". - Lanza
RuntimeExceptionsi 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).