Открытый движок маршрутизации на Java: маршруты, изохроны, матрицы и привязка к дорогам на основе данных OpenStreetMap.
osm-search/Nominatim
Открытый сервис геокодирования: ищет по имени и адресу в данных OpenStreetMap, а также выполняет обратное геокодирование.
Open source альтернатива:Google Maps Geocoding API
- Звёзды
- 4,556
- Форки
- 870
- Открытые issues
- 104
- Последний коммит
- 4 дня назад
Что это?
Nominatim — инструмент для поиска по имени и адресу в данных OpenStreetMap; этот процесс называется геокодированием. Он также умеет выполнять обратное преобразование — генерировать условный адрес для любой точки OSM. Nominatim используется как поисковый бэкенд поля поиска на главной странице OpenStreetMap, а для запросов доступен публичный экземпляр с актуальными данными.
Чтобы запустить собственный сервис, нужно клонировать репозиторий, скачать файл сетки стран, установить Python-пакеты для компонентов API и базы данных, а затем импортировать файл с данными OSM, например planet extract, в каталог проекта. После этого проект предоставляет поисковый API через веб-сервер, запущенный командой nominatim serve с использованием uvicorn и falcon.
Кодовая база написана преимущественно на Python, а для osm2pgsql используются файлы конфигурации Lua. В документации описаны установка, администрирование и устранение неполадок как для стабильных выпусков, так и для ветки разработки.
Ключевые возможности
- 01Прямое геокодирование: поиск мест и адресов по названию в данных OSM.
- 02Обратное геокодирование: создание адреса по заданным координатам.
- 03Импорт файлов с данными OSM, в том числе planet extract, в локальный проект.
- 04Предоставление поискового API через веб-сервер на Python (uvicorn и falcon).
Сценарии использования
- Добавление поиска адресов и автодополнения в картографическое приложение.
- Преобразование координат из GPS или журналов в понятные человеку адреса.
- Запуск приватного геокодера на региональном фрагменте данных OSM.
Быстрый старт
- 1
Клонируйте репозиторий
git clone https://github.com/osm-search/Nominatim.git - 2
Создайте virtualenv для Python
python3 -m venv nominatim-venv - 3
Установите пакеты Nominatim в virtualenv
./nominatim-venv/bin/pip install packaging/nominatim-{api,db} - 4
Создайте каталог проекта, а затем импортируйте данные OSM
nominatim import --osm-file <your planet file> 2>&1 | tee setup.log
Что важно знать
- Распространяется по лицензии GPL-3.0 — лицензии с принципом copyleft, требующей открытого исходного кода для производных работ.
- Для самостоятельного запуска нужно импортировать полный файл planet проекта OSM, что требует значительных усилий для самостоятельного хостинга.
Темы
Частые вопросы
- Что такое Nominatim?
- Открытый сервис геокодирования: ищет по имени и адресу в данных OpenStreetMap, а также выполняет обратное геокодирование. Nominatim — инструмент для поиска по имени и адресу в данных OpenStreetMap; этот процесс называется геокодированием. Он также умеет выполнять обратное преобразование — генерировать условный адрес для любой точки OSM. Nominatim используется как поисковый бэкенд поля поиска на главной странице OpenStreetMap, а для запросов доступен публичный экземпляр с актуальными данными.
- Nominatim можно использовать бесплатно? Какая у него лицензия?
- Nominatim распространяется с открытым исходным кодом под лицензией GPL-3.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- Nominatim всё ещё поддерживается?
- Активно поддерживается. Последний коммит в Nominatim — 3 нояб. 2026 г..
- Для чего можно использовать Nominatim?
- Добавление поиска адресов и автодополнения в картографическое приложение. Преобразование координат из GPS или журналов в понятные человеку адреса. Запуск приватного геокодера на региональном фрагменте данных OSM.
- Как установить Nominatim?
- Клонируйте репозиторий: git clone https://github.com/osm-search/Nominatim.git Создайте virtualenv для Python: python3 -m venv nominatim-venv Установите пакеты Nominatim в virtualenv: ./nominatim-venv/bin/pip install packaging/nominatim-{api,db} Создайте каталог проекта, а затем импортируйте данные OSM: nominatim import --osm-file <your planet file> 2>&1 | tee setup.log
- Где скачать Nominatim?
- Исходный код и инструкции по установке — на GitHub: https://github.com/osm-search/Nominatim
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Создаёт миры Minecraft по реальным местам на основе данных OpenStreetMap и высот рельефа для Java, Bedrock и Luanti.
Самостоятельно размещаемый генератор адресов, который возвращает реальные адреса из официальных реестров и открытых картографических данных для 27 стран и регионов.
Высокопроизводительный маршрутизатор на C++, который строит маршруты, таблицы расстояний, сопоставляет GPS-треки с картой и решает другие задачи на данных OpenStreetMap.
Удобный редактор OpenStreetMap для Android и iOS: помогает улучшать данные карты, отвечая на простые вопросы на месте.
Приложение на Ruby on Rails, на котором работает сайт OpenStreetMap, его API редактирования, страницы просмотра карты и загрузка GPX.