【问题标题】:How to get osm_id of the nominatim address component?如何获取提名地址组件的osm_id?
【发布时间】:2026-02-19 03:15:01
【问题描述】:

这是对 nominatim 的示例请求:

http://nominatim.openstreetmap.org/search?q=milan,%20italy&format=json&addressdetails=1&accept-language=en

这是地址:

"address":{"city":"Milan","county":"Milan","state":"Lombardy","country":"Italy","country_code":"it"}

所有地址组件都有osm_id,我想知道它们,像这样:

 "address":{"city":["Milan", <milanId>],"county":["Milan",  <milanId>],"state":["Lombardy", <lombardyId>],"country":["Italy", <italyId>]}

我怎样才能得到它们?

【问题讨论】:

  • 目前的 API 似乎无法实现。你想做什么?
  • 我正在尝试获取地址组件的标识符。这应该是可能的。如果不是,则应在文档中写明原因。
  • 为什么文档要提到它没有提供的功能?这很愚蠢。
  • scai,因为这个函数是预期的。
  • 并非如此。 Nominatim 是一个地理编码器。它应该将地址转换为坐标并将坐标转换为地址。其他功能是可选的。如果您想了解有关特定 OSM 元素的更多信息,那么 Nominatim 是执行此任务的错误工具。

标签: openstreetmap nominatim


【解决方案1】:

根据您的用例,您可以使用Overpass APIis_in 查询。米兰坐标见example at overpass turbo

[out:json][timeout:25];
is_in(45.4667971,9.1904984);
out;

【讨论】: