为什么 'around' 有效而 'area' 在 Overpass Turbo 中无效?

Why does 'around' work but 'area' doesn't in Overpass Turbo?

我有以下立交桥 turbo 查询:

[out:json];
area[name="Zagreb"];
(
  node["tourism"~"museum|gallery"](area);
  node["amenity"~"cafe|bar"](area);
);
out center;

您可以在此处运行:https://overpass-turbo.eu/s/1hmp

问题是它只有 returns 第一个节点,因此在本例中是 tourism="museum|gallery",而不是 amenity="cafe|bar"。

我的查询基于此答案,其中返回了两个节点(!!!):

[out:json];
(
  node["tourism"~"museum|gallery"](around:500,53.866444, 10.684738);
  node["amenity"~"cafe|bar"](around:500,53.866444, 10.684738);
);
out center;

您可以在此处 运行 原始版本:https://overpass-turbo.eu/s/1hml

只是我将 'around' 更改为 name="Zagreb" 的区域。这显然有效(尽管仅适用于其中一个节点)。

有没有人知道如何让两个节点(tourism="museum|gallery" 和 amenity="cafe|bar")在一个区域内工作?

非常感谢! 洛夫罗

您需要将该区域存储在命名输入集中(下面命名为“.myarea”),否则第一个节点语句的结果将覆盖默认输入集中的区域(称为._),并且不会不再可用于第二个节点查询。

[out:json];
area[name="Zagreb"]->.myarea;
(
  node["tourism"~"museum|gallery"](area.myarea);
  node["amenity"~"cafe|bar"](area.myarea);
);
out center;

顺便说一下,这是一个很常见的问题,我敢肯定还有其他几个 post 已经处理了这个错误。