Repolode
osm-search

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. 1

    Clona el repositorio

    git clone https://github.com/osm-search/Nominatim.git
  2. 2

    Crea un virtualenv de Python

    python3 -m venv nominatim-venv
  3. 3

    Instala los paquetes de Nominatim en el virtualenv

    ./nominatim-venv/bin/pip install packaging/nominatim-{api,db}
  4. 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

#geocoding#openstreetmap#reverse-geocoding#gis#python#search#osm

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