使用 Overpass QL 获取行政边界
Get administrative borders with Overpass QL
我尝试下载法国的州界(几十个州,不是大数据)。事实上,我正在寻找可以在我的 postgres 数据库中上传的边界来本地化 POI。 OpenstreetMap 似乎是很好的数据源,所以我尝试学习 Overpass QL,但它似乎比我想象的要难......阅读一些 wiki 后我得出了这个:
way["name:en"="France"];
way["type"="boundary"];
way["boundary"="administrative"];
way["admin_level"="4"];
但是查询无休止地运行...我不确定我所做的查询,这是好的语法吗?谢谢
您的查询存在几个问题:
- 行政边界经常建模为关系,而不是 OSM 中的方式。因此,查询方式
way[...]
不会 return 您要查找的结果。
- 要获取具有多个标签的元素,您需要像
[key1=value1][key2=value2]
那样组合它们。您当前的查询将使用 type=boundary
查询 WORLDWIDE 的所有方式,然后使用 admin_level=4
查询 WORLDWIDE 的所有方式。显然这既非常昂贵又不是您要找的东西。
out
语句对于 return 某些结果是强制性的。在您的情况下,查询实际上 运行,但它永远不会 return 任何东西。
我的建议是改用以下查询:
rel["ISO3166-2"~"^FR"]
[admin_level=4]
[type=boundary]
[boundary=administrative];
out geom;
在立交桥 Turbo 中尝试:http://overpass-turbo.eu/s/lnv
我尝试下载法国的州界(几十个州,不是大数据)。事实上,我正在寻找可以在我的 postgres 数据库中上传的边界来本地化 POI。 OpenstreetMap 似乎是很好的数据源,所以我尝试学习 Overpass QL,但它似乎比我想象的要难......阅读一些 wiki 后我得出了这个:
way["name:en"="France"];
way["type"="boundary"];
way["boundary"="administrative"];
way["admin_level"="4"];
但是查询无休止地运行...我不确定我所做的查询,这是好的语法吗?谢谢
您的查询存在几个问题:
- 行政边界经常建模为关系,而不是 OSM 中的方式。因此,查询方式
way[...]
不会 return 您要查找的结果。 - 要获取具有多个标签的元素,您需要像
[key1=value1][key2=value2]
那样组合它们。您当前的查询将使用type=boundary
查询 WORLDWIDE 的所有方式,然后使用admin_level=4
查询 WORLDWIDE 的所有方式。显然这既非常昂贵又不是您要找的东西。 out
语句对于 return 某些结果是强制性的。在您的情况下,查询实际上 运行,但它永远不会 return 任何东西。
我的建议是改用以下查询:
rel["ISO3166-2"~"^FR"]
[admin_level=4]
[type=boundary]
[boundary=administrative];
out geom;
在立交桥 Turbo 中尝试:http://overpass-turbo.eu/s/lnv