如何使用 Overpass API 获取给定街道的多边形?

How can I get the polygon of a given street using Overpass API?

我想使用 OverPass API 获取给定街道的多边形。例如,当我使用

(
  way
    ["name"="Hörnesgasse"];
  >;
);node(w);
out body;

这是一个 Overpass Turbo 链接:Overpass Turbo

我得到了多边形的节点,但它们的顺序不正确。所以我不能将它们保存为一行。有没有可能更好? 我遇到的另一个问题是我想限制对给定城市的搜索,例如 "addr:city"="Vienna"。由于节点没有直接的 city 属性,我该如何编写查询来获取此信息?

您将需要方式来检索节点的顺序。否则这将无法工作,想象一种包含一个或多个节点两次的方法。

从查询中删除 node(w); 部分并查看 <way> 元素。如果有多个 <way> 元素,那么您还必须确定它们的正确顺序。连续的方式将在开始或结束时共享相同的节点 ID。