单个请求中的多个分离请求

Multiple separated requests inside a single request

使用 OverPass API,我想在一个查询中进行多个不同的查询,然后在输出中按查询分隔结果。 例如:

node( <some bounding box> )[amenity~"cafe"]->.my_cafes;
node( <some bounding box> )[amenity~"restaurant"]->.my_restaus;
.my_cafes out;
.my_restaus out;

在 XML 输出中,是否可以跟踪给定结果正在回答哪个子查询(即 "my_cafes" 或 "my_restaus")?这可以避免发送许多 API 个调用。

在我的示例中,可以使用 tag[k=amenity,v=cafe] 之类的内容轻松过滤输出结果节点。但情况并非总是如此(让我们想象两个相似的请求,在 Overpass 中用两个不同的 around: 子句过滤)

Github 上已经讨论了类似的问题:https://github.com/drolbr/Overpass-API/issues/236

工单的简短摘要:

使用以下解决方法:只需在每个 out; 语句后放置一个 out count;。这样您就可以找出每个查询结果的结束位置以及它包含的条目数。