我想在一定范围内找到所有高速公路方式的成员节点。我不知道如何在不使用交集的情况下执行此操作,但是,这不在API中。例如,我有这个:
[out:json];
way(around:25, 50.61193,-4.68711)["highway"];>->.a;
(node(around:25, 50.61193,-4.68711) - .a);
out;
结果集.a
包含我想要的节点,但也包含半径之外的节点 - 如果路径很长,则可能是一个很大的数字。我可以找到我不需要的半径内的所有节点,如上面的完整查询所返回的那样。现在我总是可以执行第二个around
查询,并在Overpass之外执行两个结果集的交集。或者我可以做另一个不同的事情:
[out:json];
way(around:25, 50.61193,-4.68711)["highway"];>->.a;
(node(around:25, 50.61193,-4.68711) - .a)->.b;
(node(around:25, 50.61193,-4.68711) - .b);
out;
这给出了我想要的结果但可以简化吗?我确定我在这里遗漏了一些东西。
答案 0 :(得分:5)
实际上,您的查询可以简化到我们根本不需要任何差异运算符的程度。我建议采用以下方法:
在Overpass QL中,它的内容如下:
[out:json];
node(around:25, 50.61193,-4.68711);
way(bn)[highway];
node(w)(around:25, 50.61193,-4.68711);
out;
上试用