Postgresql 如何从postgis(提名导入)获取城市的区域管理信息?

Postgresql 如何从postgis(提名导入)获取城市的区域管理信息?,postgresql,openstreetmap,postgis,nominatim,Postgresql,Openstreetmap,Postgis,Nominatim,我用osm2pgsql检索了europe.osm数据库。现在我试图利用它。 有没有一种方法可以像城镇、小村庄、地方或城市那样获得州、国家、地区 编辑 数据库osm格式: 以下是数据库架构: 好吧,我没有下载你的数据,但我已经在我的数据库中加载了几乎所有拉丁美洲的openstreetmaps数据,我相信它可以 这是一个城市最近的州的例子: select distinct on (a.name) a.name as city, b.name as state, min(St

我用osm2pgsql检索了europe.osm数据库。现在我试图利用它。 有没有一种方法可以像城镇、小村庄、地方或城市那样获得州、国家、地区

编辑

数据库osm格式:

以下是数据库架构:

好吧,我没有下载你的数据,但我已经在我的数据库中加载了几乎所有拉丁美洲的openstreetmaps数据,我相信它可以

这是一个城市最近的州的例子:

select distinct on (a.name) 
   a.name as city,
   b.name as state,
   min(St_Distance(b.way, a.way)) as d 
from planet_osm_point as a, 
  (SELECT name, way, place from planet_osm_point WHERE place='state') as b 
where a.place='city' group by 1,2 order by 1 asc;
但这并不准确,它假设您可以使用多边形表进行更好的猜测:

select a.name as city,b.name as state,b.place 
from planet_osm_point as a, planet_osm_polygon as b 
where St_Contains(b.way, a.way) 
   and a.place='city'; -- and b.place='state' -- my polys table aren't tagged properly so I ignored polys.place

希望它能起作用:)。

我想您已经安装了完整的Namingm,如上所述,而不仅仅是osm2pgsql导入。

直接在数据库上执行SQL查询有点复杂。通过直接向本地安装发送反向请求,可以更轻松地获取管理信息。如果您有自己的OSM id,请发送类似以下内容: 并处理返回的XML。
如果您仍然想继续使用SQL,请查看placex和place_addressline表。前者包含所有OSM对象,后者包含它们之间的关系。

我想,当我向开放街道地图数据库寻求帮助时,应该是为熟悉该开源数据库的人提供帮助,但是我将添加2个带有文档参考的链接。。。。因此,我意识到“堆栈溢出不是我的个人研究助手”,并确信我在任何地方都能找到解决方案,我只希望整个公司的人都能找到我的问题并找到解决方案。这种方法不管用吗?我不是要求人们找我。。。。。但只要给我一些元素(如果必须的话)继续。@casperOne,我不明白为什么这个问题要结束,我第一次读这个问题时就清楚地理解了他想要什么,只是因为你不熟悉openstreetmap数据,这并不意味着你应该结束it@pacofvf是的,关于“熟悉openstreetmap数据”,这一论点与此关闭的原因无关。此外,您应该更熟悉FAQ和Meta;很明显,没有任何研究工作涉及此问题。在这些情况下,关闭的常见原因是“不是真正的问题”“@casperOne我认为你是对的,实际上在最后一个链接中有一个如何检索osm数据的示例。