使用overpass API从单个点获取区域的多边形围栏

时间:2016-01-26 19:36:56

标签: polygon openstreetmap overpass-api

我感兴趣的是在给定纬度/经度值的情况下检索所有管理级别的多边形边界。

我有一点 - 让我们说(34.0500,-118.2500)。

我想检索城市(admin_level = 8)/州(admin_level = 4)/ country(admin_level = 2)信息以及每个级别的多边形边界。

目前,我能够获得我感兴趣的领域:

area[name="Los Angeles"][admin_level=8][boundary=administrative]->.laarea;
rel(pivot.laarea);
out geom;

但是,我不确定如何为每个admin_levels获取多边形边界。如果可能,我想将其作为单个查询。

我试过了:

{{1}}

但是这似乎返回了世界上每个城市的数据,名称为“洛杉矶”。

有没有办法使用上一个查询中的区域ID执行上述查询? 有更好的方法吗?

我一直在使用http://overpass-turbo.eu/来测试我的查询。

1 个答案:

答案 0 :(得分:3)

您可以将is_in与查询的其余部分合并,如以下查询所示:

is_in(34.0500, -118.2500);
rel(pivot)[boundary=administrative][admin_level~"^[248]$"];
out geom;

这将返回您所在位置的第2级,第4级和第8级的所有管理边界(34.0500,-118.2500)。 is_in将只生成一个区域列表,由以下(枢轴)使用。

overpass turbo link:http://overpass-turbo.eu/s/e01

使用显式输入集时,也可以写为:

is_in(34.0500, -118.2500)->.areas;
rel(pivot.areas)[boundary=administrative][admin_level~"^[248]$"];
out geom;