基于 OpenStreetMap 数据的开源 Java 路径规划服务,提供路线、等时圈、距离矩阵等接口。
- Star
- 4,553
- Fork
- 869
- 未关闭 Issue
- 104
- 最近提交
- 4天前
这是什么?
Nominatim 是一个基于 OpenStreetMap 数据的搜索工具,可以按名称和地址进行地理编码,也能反向生成任意 OSM 点位的合成地址,即逆地理编码。OpenStreetMap 首页的搜索框就使用它作为数据源之一,项目也提供一个数据持续更新的公共实例供直接查询。
自建服务时,需要克隆仓库、下载国家网格文件、安装 API 与数据库相关的 Python 包,然后将 OSM 数据文件(如 planet 文件的子集)导入项目目录。之后通过 nominatim serve 命令配合 uvicorn 和 falcon 启动 Web 服务,对外提供搜索接口。
项目主要使用 Python 编写,并包含供 osm2pgsql 使用的 Lua 配置文件。文档覆盖稳定版与开发版的安装、管理和故障排查。
核心功能
- 01正向地理编码:按名称搜索 OSM 数据中的地点和地址。
- 02逆地理编码:根据坐标生成对应地址。
- 03将 OSM 数据文件(包括 planet 文件的子集)导入本地项目。
- 04通过 Python Web 服务(uvicorn 与 falcon)提供搜索接口。
适用场景
- 为地图应用添加地址搜索和自动补全功能。
- 将 GPS 或日志中的坐标转换为可读地址。
- 基于区域性 OSM 数据子集搭建私有地理编码服务。
快速上手
- 1
克隆代码仓库
git clone https://github.com/osm-search/Nominatim.git - 2
创建 Python 虚拟环境
python3 -m venv nominatim-venv - 3
将 Nominatim 软件包安装到虚拟环境中
./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 许可证,要求衍生作品也必须开源。
- 自行运行需要导入完整的 OSM planet 文件,自托管工作量较大。
标签
常见问题
- Nominatim 是什么?
- 基于 OpenStreetMap 数据的开源地理编码服务,支持按名称和地址搜索及逆地理编码。 Nominatim 是一个基于 OpenStreetMap 数据的搜索工具,可以按名称和地址进行地理编码,也能反向生成任意 OSM 点位的合成地址,即逆地理编码。OpenStreetMap 首页的搜索框就使用它作为数据源之一,项目也提供一个数据持续更新的公共实例供直接查询。
- Nominatim 可以免费使用吗?用的什么许可证?
- Nominatim 以 GPL-3.0 许可证开源。用于商业产品前,请先确认许可证条款。
- Nominatim 还在维护吗?
- 活跃维护中。Nominatim 最近一次提交是在 2026年11月3日。
- Nominatim 适合用来做什么?
- 为地图应用添加地址搜索和自动补全功能。 将 GPS 或日志中的坐标转换为可读地址。 基于区域性 OSM 数据子集搭建私有地理编码服务。
- Nominatim 怎么安装和运行?
- 克隆代码仓库: git clone https://github.com/osm-search/Nominatim.git 创建 Python 虚拟环境: python3 -m venv nominatim-venv 将 Nominatim 软件包安装到虚拟环境中: ./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
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
1990+2 本周488JavaGPL-3.0更新于 21小时前
利用 OpenStreetMap 数据和真实地形高程,生成现实地点的 Minecraft 世界。
1.9万+79 本周1556RustApache-2.0维护活跃更新于 昨天
自托管地址生成器,基于官方登记数据与开放地图数据,返回真实存在的地址,覆盖 27 个国家和地区。
2132336JavaScriptMIT更新于 3天前
基于 OpenStreetMap 数据的高性能 C++ 路径规划引擎,提供路线、距离矩阵和轨迹匹配等服务。
8195+11 本周3979C++BSD-2-Clause维护活跃更新于 5天前
面向 Android 和 iOS 的 OpenStreetMap 简易编辑器,通过现场回答简单问题来完善地图数据。
5135+6 本周480KotlinGPL-3.0维护活跃更新于 17小时前
驱动 OpenStreetMap 网站与编辑 API 的 Ruby on Rails 应用程序。
2883+8 本周1104RubyGPL-2.0维护活跃更新于 前天