0

「アメニティ」キーを使用してすべてのウェイとノードを取得しようとしていますが、これはユニオンで問題なく機能しますが、ウェイを構成するノードも必要であり、再帰タグが期待どおりに機能していません:

<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 リンクを試してください。

(キャッチオール regv パラメータは省略できることにも注意してください。)

于 2013-05-17T01:22:03.527 に答える