Motor de enrutamiento de código abierto en Java que ofrece servicios de indicaciones, isócronas, matrices y ajuste de coordenadas sobre datos de OpenStreetMap.
osm-search/Nominatim
Servicio de geocodificación de código abierto que busca en los datos de OpenStreetMap por nombre y dirección y ofrece geocodificación inversa.
Alternativa open source a:Google Maps Geocoding API
- Estrellas
- 4,553
- Forks
- 869
- Issues abiertos
- 104
- Último commit
- hace 4 días
¿Qué es?
Nominatim es una herramienta para buscar en los datos de OpenStreetMap por nombre y dirección, un proceso llamado geocodificación. También puede funcionar en sentido inverso y generar una dirección sintética para cualquier punto de OSM. Es el motor de búsqueda que usa el cuadro de búsqueda de la página de inicio de OpenStreetMap, y hay una instancia pública con datos actualizados disponible para realizar consultas.
Para ejecutar tu propio servicio, clona el repositorio, descarga un archivo de cuadrícula de países, instala los paquetes de Python para los componentes de la API y la base de datos, e importa un archivo de datos de OSM, como un extracto del planeta, en un directorio del proyecto. Luego, el proyecto sirve la API de búsqueda mediante un servidor web que se inicia con el comando nominatim serve y usa uvicorn y falcon.
El código está escrito principalmente en Python, con archivos de configuración de Lua para osm2pgsql. La documentación cubre la instalación, la administración y la resolución de problemas, tanto para las versiones estables como para la rama de desarrollo.
Funciones clave
- 01Geocodificación directa: busca lugares y direcciones por nombre en los datos de OSM.
- 02Geocodificación inversa: genera una dirección a partir de unas coordenadas.
- 03Importa archivos de datos de OSM, incluidos extractos del planeta, en un proyecto local.
- 04Sirve la API de búsqueda mediante un servidor web de Python (uvicorn y falcon).
Casos de uso
- Añadir búsqueda de direcciones y autocompletado a una aplicación de mapas.
- Convertir coordenadas de GPS o registros en direcciones legibles.
- Ejecutar un geocodificador privado sobre un extracto regional de OSM.
Inicio rápido
- 1
Clona el repositorio
git clone https://github.com/osm-search/Nominatim.git - 2
Crea un virtualenv de Python
python3 -m venv nominatim-venv - 3
Instala los paquetes de Nominatim en el virtualenv
./nominatim-venv/bin/pip install packaging/nominatim-{api,db} - 4
Crea un directorio para el proyecto e importa tus datos de OSM
nominatim import --osm-file <your planet file> 2>&1 | tee setup.log
Antes de usarlo
- Se distribuye bajo la licencia GPL-3.0, una licencia copyleft que exige que las obras derivadas sean de código abierto.
- Para ejecutarlo por tu cuenta, debes importar un archivo planet completo de OSM, lo que supone un esfuerzo considerable de alojamiento propio.
Temas
Preguntas frecuentes
- ¿Qué es Nominatim?
- Servicio de geocodificación de código abierto que busca en los datos de OpenStreetMap por nombre y dirección y ofrece geocodificación inversa. Nominatim es una herramienta para buscar en los datos de OpenStreetMap por nombre y dirección, un proceso llamado geocodificación. También puede funcionar en sentido inverso y generar una dirección sintética para cualquier punto de OSM. Es el motor de búsqueda que usa el cuadro de búsqueda de la página de inicio de OpenStreetMap, y hay una instancia pública con datos actualizados disponible para realizar consultas.
- ¿Nominatim es gratuito? ¿Qué licencia tiene?
- Nominatim es open source bajo la licencia GPL-3.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿Nominatim sigue mantenido?
- Mantenimiento activo. El último commit de Nominatim fue el 3 nov 2026.
- ¿Para qué puedo usar Nominatim?
- Añadir búsqueda de direcciones y autocompletado a una aplicación de mapas. Convertir coordenadas de GPS o registros en direcciones legibles. Ejecutar un geocodificador privado sobre un extracto regional de OSM.
- ¿Cómo se instala Nominatim?
- Clona el repositorio: git clone https://github.com/osm-search/Nominatim.git Crea un virtualenv de Python: python3 -m venv nominatim-venv Instala los paquetes de Nominatim en el virtualenv: ./nominatim-venv/bin/pip install packaging/nominatim-{api,db} Crea un directorio para el proyecto e importa tus datos de OSM: nominatim import --osm-file <your planet file> 2>&1 | tee setup.log
- ¿Dónde consigo Nominatim?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/osm-search/Nominatim
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Genera mundos de Minecraft a partir de lugares reales con datos de OpenStreetMap y elevación del terreno, para Java, Bedrock y Luanti.
Generador de direcciones autoalojado que devuelve direcciones reales de registros oficiales y datos cartográficos abiertos de 27 países y regiones.
Motor de enrutamiento de alto rendimiento en C++ que calcula rutas, matrices de distancias, ajusta trazas GPS al mapa y mucho más sobre datos de OpenStreetMap.
Un editor de OpenStreetMap fácil de usar para Android e iOS que mejora los datos del mapa respondiendo preguntas sencillas sobre el terreno.
La aplicación Ruby on Rails que ejecuta el sitio web de OpenStreetMap, su API de edición, las páginas de exploración y la carga de archivos GPX.