postgresql - 使用 Overpass QL 获取行政边界

标签 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. 行政边界通常被建模为关系,而不是 OSM 中的方式。因此,查询方法 way[...] 不会返回您要查找的结果。
  2. 要获取具有多个标签的元素,您需要像 [key1=value1][key2=value2] 那样组合它们。您当前的查询将使用 type=boundary 查询 WORLDWIDE 的所有方式,然后使用 admin_level=4 再次查询 WORLDWIDE 的所有方式。显然,这既非常昂贵又不是您想要的。
  3. out 语句必须返回一些结果。在您的情况下,查询实际上会运行,但它永远不会返回任何内容。

我的建议是改用以下查询:

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

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

关于postgresql - 使用 Overpass QL 获取行政边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41723087/

相关文章:

sql - 链式 CTE 未按顺序执行? PostgreSQL

sql - 使用 json_agg 从 SQL 查询获取 [null] 响应

sql - 从条件 INSERT 中获取 Id

android - 检索 openstreetmap 中的 maxspeed 标签

sql - 使用 postgis 将转储的多部分几何体选择到数组中

sql - 在 PostgreSQL 中如何连接两个表选择单独的信息

java - Osmdroid 奖金包 - MyLocationNewOverlay

android - 将 OpenSeaMap 集成到 Android 应用程序中

linux - undefined symbol : lwgeom_sfcgal_version

django - 在恢复的 geodjango postgis 备份中无法识别表