2

我已经设置了自己的 OpenStreetMap 服务器(数据库是 PostGis),并且我正在使用 Nominatim 进行地理编码以及从地址到坐标或坐标到地址的转换。我需要从一个国家/地区获取所有地名(城市、城镇、村庄等)的列表,但我仍然无法理解数据库结构。任何想法如何做到这一点?

我知道还有其他解决方案(GeoNames 或其他可用数据库),请理解我不想使用它们,我只需使用 OSM 数据库和/或 Nominatim 数据库即可。

4

1 回答 1

4

您需要下载您感兴趣的 OSM 数据并使用 osm2pgsql 将其加载到 PostGIS。(不确定你是否已经这样做了)

然后你只需运行查询:

  select name from planet_osm_point where place in ('city','town','village');

不能保证数据在偏离过程中是完整的,因为标记是以众包方式完成的。

于 2014-03-20T12:38:04.177 回答