OpenSource-Hub
N

Nominatim

4.2k stars·开发工具·已提供 SHA-256 校验码,下载后可自行核对文件完整性

通过名称或地址搜索 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)进行永久修复。

来源 Issue #4079

标签

openstreetmapgeocodingreverse-geocodingmaps

快速上手

1

下载安装包

点击上方按钮下载对应系统的安装包

2

安装软件

双击下载的安装程序,按提示完成安装

3

克隆仓库并下载国家网格:git clone + wget

4

创建 Python 虚拟环境并安装 API 和 DB 包

5

创建项目目录,下载 OSM 数据并运行导入命令

安装指引
  1. 克隆仓库并下载国家网格:git clone + wget
  2. 创建 Python 虚拟环境并安装 API 和 DB 包
  3. 创建项目目录,下载 OSM 数据并运行导入命令
文件完整性

暂未获取到校验码

该项目暂未在 GitHub Release 页面提供 SHA-256 校验码

SHA256 校验码

暂无校验码

建议从 GitHub Releases 页面直接下载,并自行核对文件完整性

本平台所有 SHA-256 校验码均提取自项目在 GitHub 官方 Release 页面发布的文件,未做任何修改。你可以通过 GitHub Releases 页面自行验证。

运维指引

卸载说明

删除项目目录和虚拟环境即可。如需彻底移除 PostgreSQL 数据库,手动删除 Nominatim 数据库和用户。

无额外依赖

下载后即可直接使用,无需安装其他运行环境

项目信息
开源协议GPL-3.0+ and Apache-2.0
最后更新2026-06-26 20:55:29
GitHub 仓库官方网站

遇到问题?查看下方 FAQ

1 FAQ

相似推荐