使用OpenStreetMap获取特定国家/地区的所有城市

时间:2014-05-06 17:23:03

标签: json openstreetmap

我试图找到一种方法来使用OpenStreetMap API来获取特定国家/地区中所有城市的列表,其中包含用于开发iOS应用的经度和纬度。

但是我无法这样做。我一直在尝试使用Overpass API,但我找不到合适的参数来列出所有城市(而不仅仅是前1000名)。

有没有人知道这样做的方法可以返回正确的JSON?

由于

Tobias Timpe

2 个答案:

答案 0 :(得分:8)

您的查询不是(恕我直言)适用于API,因为您的结果非常稀疏,但需要遍历所有数据(没有常规索引)。

所以获取OSM extact,使用osmosis对其进行过滤,然后对结果进行自己的处理。

请记住,在OSM中可以对城镇进行不同的建模:

  • 作为标记节点,例如place=city
  • 作为土地利用区域(也有额外的地方标签)
  • boundary所以,(多面)关系

您可能还希望查看nominatim地理编码和legal FAQ以分发OSM数据。

答案 1 :(得分:-1)

尝试Overpass_API

例如,德国所有州:

 http://overpass-api.de/api/interpreter?data=(rel[admin_level="4"](47,6,55,15););out;