Nominatim
通过名称或地址搜索 OpenStreetMap 数据(地理编码),并可反向解析经纬度为地址。
智能下载
前往项目主页
该项目暂未提供安装包,请直接访问源代码仓库
基于 OSM 的开源地名搜索与反向地址解析工具
核心功能
- 支持正向地理编码(名称/地址→坐标)和反向地理编码(坐标→地址)
- 完全基于 OpenStreetMap 开源数据,免费无限制
- 可自托管部署,数据和控制权完全自主
- 提供 REST API,方便集成到应用或网站中
- 支持全球范围搜索,数据由全球社区持续更新
避坑指南
- •首次导入全球数据(约 70GB 压缩)需至少 64GB 内存和 SSD,耗时数小时至数天。2. 只支持 OSM 数据,不包含商业 POI 或实时路况。3. 反向地理编码结果精度受限于 OSM 数据质量。4. 官方实例有使用限制,建议自建服务。
适用场景
- 在地图应用或导航系统中提供搜索地点功能
- 对用户上传的 GPS 坐标点批量解析为街道地址
- 科研或数据分析中需要将地理位置文本化为结构化地址
详细介绍
Nominatim 是一款基于 OpenStreetMap(OSM)数据的开源地理编码工具。它能通过名称或地址搜索地点(正向地理编码),也能根据经纬度反推出结构化地址(反向地理编码)。它驱动着 OSM 官网的搜索框,并支持自建服务。安装需要 PostgreSQL、PostGIS 和 Python 虚拟环境,首次导入全球数据需较大磁盘空间和内存。项目文档完善,包含常见问题解答。
常见问题与排障 (1)
故障排除为什么当我点击邮政编码搜索结果时,Nominatim显示的位置是错误的?
Nominatim使用服务器本地的place_id。当初始搜索和详情页面由不同的后端服务器提供服务时,place_id可能引用不同的对象。作为临时解决方案,请使用Overpass Turbo:访问https://overpass-turbo.eu/s/2oug,调整地图并更改邮政编码值,然后运行查询。Overpass Turbo可在数秒内反映OSM数据更改。计划通过稳定标识符(如P:us:94110)进行永久修复。
标签
快速上手
安装软件
双击下载的安装程序,按提示完成安装
克隆仓库并下载国家网格:git clone + wget
创建 Python 虚拟环境并安装 API 和 DB 包
创建项目目录,下载 OSM 数据并运行导入命令
- 克隆仓库并下载国家网格:git clone + wget
- 创建 Python 虚拟环境并安装 API 和 DB 包
- 创建项目目录,下载 OSM 数据并运行导入命令
暂未获取到校验码
该项目暂未在 GitHub Release 页面提供 SHA-256 校验码
SHA256 校验码
暂无校验码
建议从 GitHub Releases 页面直接下载,并自行核对文件完整性
本平台所有 SHA-256 校验码均提取自项目在 GitHub 官方 Release 页面发布的文件,未做任何修改。你可以通过 GitHub Releases 页面自行验证。
开源透明
查看 GitHub 源码卸载说明
删除项目目录和虚拟环境即可。如需彻底移除 PostgreSQL 数据库,手动删除 Nominatim 数据库和用户。
无额外依赖
下载后即可直接使用,无需安装其他运行环境
遇到问题?查看下方 FAQ
1 FAQ