国によるOverpass-APIのフィルタリング


9

このようなoverpass-apiリクエストを実行する方法を誰かが知っていますか?

「ドイツのすべての銀行を見せて」

特定の境界ボックスにすべての「amenity = bank」を表示することができます。しかし、ドイツ(またはほとんどすべての国)は、このようなbboxにはあまり適合しません。

これを行う方法はありますか?例はありますか?独自のサーバーなどをホストできるため、サーバーのパフォーマンスやランタイムは二次的です:)

回答:


11

オーバーパスターボを使用した場合の構文は次のとおりです。

area["name"="Nordrhein-Westfalen"]->.boundaryarea;
(
nwr(area.boundaryarea)[amenity=bank];
);
out meta;

nwr略ですnode- way-relation


">;"と書くのに役立ちました。閉じ丸かっこ ");"の後 そして「アウト」の前。それ以外の場合、マップ内の座標を持つノードは表示されませんでした。
qräbnö

@qräbnöあなたは正しい、私は私の答えを更新しました。
AndreJ 2018年

7

QGISのQuick OSMプラグインは、次の有効なOverpassクエリを生成します。

<osm-script output="xml" timeout="200"> 
 <id-query {{nominatimArea:Austria}} into="area"/> 
 <union>
      <query type="node">
           <has-kv k="amenity" v="bank"/> 
           <area-query from="area"/>
      </query>
      <query type="way">
           <has-kv k="amenity" v="bank"/> 
           <area-query from="area"/>
      </query>
      <query type="relation">
           <has-kv k="amenity" v="bank"/> 
           <area-query from="area"/>
      </query>
 </union>
 <union>
      <item />
      <recurse type="down"/>
 </union>
 <print mode="body" />
</osm-script>

詳細については、Overpass turbo / Extended Overpass Queriesを参照してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.