使用Nominatim / OpenStreetMap获取一个国家/地区中所有城市/地名的列表

时间:2014-03-20 10:00:04

标签: openstreetmap postgis nominatim

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

我知道还有其他解决方案(GeoNames或其他可用的数据库),请理解我不想使用它们,我需要通过使用OSM数据库和/或Nominatim数据库来实现这一点。

1 个答案:

答案 0 :(得分:4)

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

然后你只需运行查询:

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

不保证数据不会完整,因为标签是以众包方式完成的。