0

我正在尝试使用“amenity”键获取所有路径和节点,这与联合可以正常工作,但我还需要构成路径的节点,并且递归标记无法按预期工作:

<osm-script>
<union>
<query type="way">
  <has-kv k="amenity" regv="."/>
  <bbox-query s="%s" w="%s" n="%s" e="%s"/>
</query>

<query type="node">
  <has-kv k="amenity" regv="."/>
  <bbox-query s="%s" w="%s" n="%s" e="%s"/>
</query>
</union>
<recurse type="way-node" />
<print/></osm-script>

%s 是占位符。谢谢!

4

1 回答 1

1

使用您的代码,方式查询的结果将替换为递归的结果。因此,您应该在输出中包含舒适通道的(通常未标记的)节点,而不是通道本身。

然而,将它们放在一个联合中意味着这些方式和它们的节点最终都会出现在您的输出中:

<osm-script>
  <union>
    <query type="node">
      <has-kv k="amenity"/>
      <bbox-query {{bbox}}/>
    </query>
    <query type="way">
      <has-kv k="amenity"/>
      <bbox-query {{bbox}}/>
    </query>
    <recurse type="way-node" />   
  </union>
  <print/>
</osm-script>

{{bbox}} 是多个参数的占位符,如您的示例所示。如果你想自己测试修改后的查询,试试这个 Overpass Turbo 链接

(另请注意,您可以省略 catch-all regv 参数。)

于 2013-05-17T01:22:03.527 回答