我想找到某个半径范围内的所有高速公路成员节点。不使用交集,我看不到如何做到这一点,但是,API中没有。例如我有这个:
[out:json];
way(around:25, 50.61193,-4.68711)["highway"];>->.a;
(node(around:25, 50.61193,-4.68711) - .a);
out;
Run Code Online (Sandbox Code Playgroud)
结果集不仅.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;
Run Code Online (Sandbox Code Playgroud)
这给出了我想要的结果,但是可以简化吗?我确定我在这里想念什么。
确实,您的查询可以简化到一定程度,我们根本不需要任何差异运算符。我建议采用以下方法:
在立交桥QL中,其内容如下:
[out:json];
node(around:25, 50.61193,-4.68711);
way(bn)[highway];
node(w)(around:25, 50.61193,-4.68711);
out;
Run Code Online (Sandbox Code Playgroud)
在天桥Turbo上试用