Postgresql 通过立交桥获取管理边界

Postgresql 通过立交桥获取管理边界,postgresql,openstreetmap,postgis,overpass-api,Postgresql,Openstreetmap,Postgis,Overpass Api,我试着下载法国的国家边界(几十个州,不是大数据)。事实上,我寻找我可以上传到我的postgres数据库中的边界来本地化POI。OpenstreetMap似乎是一个很好的数据源,所以我尝试学习OverpassQL,但似乎比我想象的要难。。。在一些维基阅读之后,我得出以下结论: way["name:en"="France"]; way["type"="boundary"]; way["boundary"="administrative"]; way["admin_level"="4"]; 但是这个

我试着下载法国的国家边界(几十个州,不是大数据)。事实上,我寻找我可以上传到我的postgres数据库中的边界来本地化POI。OpenstreetMap似乎是一个很好的数据源,所以我尝试学习OverpassQL,但似乎比我想象的要难。。。在一些维基阅读之后,我得出以下结论:

way["name:en"="France"];
way["type"="boundary"];
way["boundary"="administrative"];
way["admin_level"="4"];

但是这个问题没完没了。。。我不确定我所做的查询,这是好的语法吗?谢谢

您的查询有几个问题:

  • 在OSM中,管理边界通常被建模为关系,而不是方式。因此,查询ways
    way[…]
    将不会返回您要查找的结果
  • 要获取具有多个标记的元素,需要将它们组合起来,如
    [key1=value1][key2=value2]
    。当前查询将使用
    type=boundary
    查询全球所有方式,然后再次使用
    admin\u level=4
    查询全球所有方式。显然,这是非常昂贵的,而不是你想要的
  • out
    语句必须返回某些结果。在您的情况下,查询实际上会运行,但它永远不会返回任何内容
  • 我的建议是使用以下查询:

    rel["ISO3166-2"~"^FR"]
       [admin_level=4]
       [type=boundary]
       [boundary=administrative];
    out geom;
    

    在立交桥turbo中试用:

    非常感谢这是我所需要的。我向前推进了一点,试图从法国获得所有的城市边界。根据你告诉我的关于州的情况,我尝试了同样的方法,但是对于城市,级别为8。但是城市边界没有ISO3166标签,实际上在管理级别8的边界中根本没有国家标签。如何搜索特定国家的所有城市边界?谢谢rel[“ISO3166-2”~“^FR”][admin_level=8][type=boundary][boundary=administrative];外几何@你能解决这个问题吗?我正在寻找一种方法来做sameI@David,不,我没有,我放弃了这种方法来做它,我现在使用的是一个很棒的网站“OSM Bounders 4.2”,它为世界上所有的行政边界提供了一个API服务来下载data@ThomasPerrin它有一些文档和API来获取数据吗?