系列「每天一个高质量 API」第 15 篇。搜蚁智选(souyi.net.cn)是一个面向 AI Agent 的 API 发现与统一调用平台。今天聊 OSM Nominatim 地理编码(free-geo-nominatim)。
把「柏林」变成经纬度,把坐标变成门牌地址——OpenStreetMap 官方地理编码服务。
这个 API 能做什么
Nominatim 提供两个方向的能力:正向地理编码(地名 → 坐标,/search?q=)与反向地理编码(坐标 → 地址,/reverse?lat=&lon=)。返回 lat / lon、display_name、addresstype(city / house / road…)、importance 以及用于地图取景的 boundingbox。
为什么 AI Agent 需要它
- 出行 Agent:用户说「柏林」→ 拿到坐标 → 再接天气、路线、时区接口,链路自然串起来。
- 地址标准化:同一地点的多种写法归一到 OSM 的
osm_id。 - 地图取景:
boundingbox可以直接作为地图视野范围。
怎么用
方式一:直连上游(免费、无需 Key)
curl "https://nominatim.openstreetmap.org/search?q=Berlin&format=json&limit=1"
方式二:经搜蚁智选一键调用(带 Key,统一计费 / 限流 / 可观测)
curl -X POST https://souyi.net.cn/api/v1/ai/request \
-H "X-API-Key: YOUR_AIMALL_KEY" \
-H "Content-Type: application/json" \
-d '{"asset_id":"free-geo-nominatim","call_data":{}}'
这些免费 API 的上游本身免密;经搜蚁智选代理后,多个数据源可以聚合到同一个 Agent 工作流里,统一走 X-API-Key + 统一计费、限流与可观测,省去每个上游单独接一遍。
返回示例
[
{
"place_id": 145205353,
"osm_type": "relation",
"osm_id": 62422,
"lat": "52.5173885",
"lon": "13.3951309",
"type": "administrative",
"addresstype": "city",
"name": "Berlin",
"display_name": "Berlin, Deutschland",
"importance": 0.8522196536088086,
"boundingbox": ["52.3382448", "52.6755087", "13.0883450", "13.7611609"]
}
]
价格
免费。上游要求最多 1 req/s 且必须带可识别的 User-Agent;平台已代为设置。
怎么拿到 Key
注册 souyi.net.cn → 控制台一键生成 X-API-Key → 即可调用平台全部 API(含本系列 22 个)。
小结
几乎所有位置类需求的第一跳都是「把文字变坐标」。Nominatim 免费且覆盖全球,是自建 Agent 时最省事的地理编码入口。
更多免费 API 见 系列目录。