从具有立交桥的单个点获取区域的多边形围栏 API

get the polygon fence for an area from a single point with overpass API

我有兴趣在给定 lat/long 点的情况下检索所有管理级别的多边形边界。

我有一个观点 - 比方说 (34.0500, -118.2500)。

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

目前,我可以获取我感兴趣的区域:

[out:json];
is_in(34.0500, -118.2500);
out;

{
  "type": "area",
  "id": 3600148838,
  "tags": {   
           "admin_level": "2",
           "border_type": "national",
           "boundary": "administrative",
           "name": "United States of America",
           "type": "boundary",
           "wikidata": "Q30",
           "wikipedia": "en:United States"
          }
},

{
  "type": "area",
  "id": 3600165475,
  "tags": {
           "ISO3166-2": "US-CA",
           "admin_level": "4",
           "boundary": "administrative",
           "name": "California",
           "type": "boundary"
          }
},
{
 "type": "area",
 "id": 3600207359,
 "tags": {
          "admin_level": "8",
          "boundary": "administrative",
          "name": "Los Angeles",
          "place": "city",
          "short_name": "LA",
          "type": "boundary"
         }
}

但是,我不确定如何为每个 admin_level 获取多边形边界。如果可能的话,我想把它作为一个查询来做。

我试过了:

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

但这似乎是 return 世界上每个名为 "Los Angeles" 的城市的数据。

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

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

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

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

这将 return 您所在位置(34.0500、-118.2500)的第 2、4 和 8 层所有行政边界。 is_in 将简单地生成一个区域列表,供以下 (pivot) 使用。

立交桥涡轮增压link:http://overpass-turbo.eu/s/e01

当使用显式输入集时,这也可以写成:

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