Nominatim API(OpenStreetMap官方地理编码服务)
2026年07月10日 09:10
GISBox是一站式三维GIS数据编辑、转换、发布平台,支持OSGB/GEOTIFF/RVT等多种GIS格式编辑,转换为3DTiles/Terrain等并发布。
简介
Nominatim API是OpenStreetMap官方提供的开源地理编码与反向地理编码服务,能够将人类可读的地址(如“中国浙江省杭州市西湖区”)转换为精确的经纬度坐标(正向地理编码),也能将经纬度坐标(如30.2642, 120.1667)还原为结构化的地址描述(反向地理编码),其数据完全依赖全球志愿者贡献的OpenStreetMap地图信息,支持自由文本查询与结构化参数过滤,广泛用于地图应用、位置搜索、数据分析等场景,且通过官方公共接口https://nominatim.openstreetmap.org/免费开放使用,但需遵守每秒不超过1次请求的使用政策。
文件结构
Nominatim的文件结构可从三个层面理解:
- 源码目录:nominatim/api/(API 接口层)、nominatim/tokenizer/(分词器)、lib-sql/(数据库函数)、settings/(配置文件)、sql/(建表脚本)、test/(测试套件)等。
- 部署文件系统:data/osm/(原始 OSM 数据文件)、postgres/(PostgreSQL 数据库存储,占用空间最大)、config/settings/local.php(自定义配置)、logs/(运行日志)、docker-compose.yml(容器部署配置)。
- 核心数据库表:place(存储所有地点)、search_name(搜索索引)、place_addressline(地址层级关系)、location_area/road(区域与道路辅助表),通过 PostGIS 空间索引支撑高效查询。
优点
- 开源免费:完全开源,无需支付任何许可费用,数据透明可查,适合个人项目与非商业应用。
- 基于全球协作数据:依托OpenStreetMap全球志愿者贡献的数据,覆盖全球范围,支持约167种语言与本地化地址。
- 支持多种查询方式:提供正向地理编码(地址→坐标)、反向地理编码(坐标→地址)、结构化参数查询及批量查询等丰富功能。
- 可完全离线运行:自建部署后无需外部网络连接即可提供服务,满足数据隐私与合规需求。
- 高度可定制:支持自定义分词规则、排名算法、国家行为设置,模块化设计便于扩展。
缺点
- 公共API严格限流:官方公共接口限制匿名用户每秒不超过1次请求,高频场景需自建服务或购买商业替代方案。
- 地区数据不均衡:数据质量高度依赖OSM社区贡献,欧美地区数据丰富,部分地区(如发展中国家农村)数据可能不完整。
- 自建部署复杂且资源消耗大:需手动管理PostgreSQL+PostGIS数据库,全球数据需1TB+存储,建议至少32GB内存、NVMe SSD,数据导入过程漫长。
- 查询性能有限:复杂或逆向查询响应时间可达数百毫秒至数秒,高并发下易出现性能瓶颈与OOM问题。
- 功能范围有限:仅提供地理编码与反向编码,不包含路线规划、导航、地图瓦片渲染等功能,无法满足完整地图应用需求。
应用场景
Nominatim API广泛应用于各类需要地址与坐标相互转换的场景,包括地图导航中将用户输入的地址定位到地图上、物流配送系统中标准化收件地址以规划路线、社交与旅游平台中为内容自动添加地理标签,以及房地产、城市规划、应急救援、商业数据分析和IoT资产管理等领域,帮助开发者将文本地址批量转为经纬度坐标,从而实现基于位置的搜索、可视化与空间决策。
示例图
1. docker镜像容器搭建nominatim地理编码服务。

文件打开方式
1. Web端加载OpenStreetMap地图。

相关 GIS 服务
Web 地图渲染服务 OGC API
切片地图服务
HERE Technologies
Azure Maps API
参考资料
- https://blog.csdn.net/weixin_45428910/article/details/148293785
- https://blog.csdn.net/weixin_38850930/article/details/139059087
- https://blog.csdn.net/qq_17486399/article/details/100136606