通过Overpass QL获取管理边界

时间:2017-01-18 15:20:47

标签: postgresql openstreetmap postgis overpass-api

我尝试下载法国的国家边界(几十个州,而不是大数据)。事实上,我寻找可以在postgres数据库中上传的边界来本地化POI。 OpenstreetMap似乎是很好的数据源,所以我试图学习Overpass QL,但它似乎比我想象的更难......在一些wiki阅读之后我来到了这里:

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

但查询无休止地运行...我不确定我所做的查询,这是一个好的语法吗?感谢

1 个答案:

答案 0 :(得分:3)

您的查询存在以下几个问题:

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

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

    在立交桥turbo中尝试:http://overpass-turbo.eu/s/lnv