如何通过 OpenStreetMap 查找所有(邮政编码、城市名称)对?

How to find all (zip code, city name) pair through OpenStreetMap?

我想查找欧洲所有邮政编码及其对应的城市名称、国家名称。

我最初的想法是查询包含如下标签的osm数据:

<tag k="addr:city" v="München"/>
<tag k="addr:country" v="DE"/>
<tag k="addr:housenumber" v="10"/>
<tag k="addr:postcode" v="80538"/>

结果应该是一个字典,键是邮政编码,值是由城市和国家名称组成的元组。

如何查询 OSM,例如通过 http://overpass-turbo.eu/ 获取原始信息?有没有更好的方法?

您正在寻找的那种数据结构是每个所谓的 'geocoder' as nominatim 的基础。我建议看那边:https://wiki.openstreetmap.org/wiki/Nominatim
https://wiki.openstreetmap.org/wiki/Nominatim/Development_overview