Memfilter Overpass-API berdasarkan negara


9

Adakah yang tahu cara melakukan permintaan overpass-api seperti ini?

"Tunjukkan semua bank di Jerman"?

Saya bisa menunjukkan semua 'amenity = bank' dalam kotak batas tertentu. Tetapi Jerman (atau kebanyakan negara) tidak cocok dengan bbox seperti itu.

Apakah ada cara untuk melakukan ini? Apakah Anda punya contoh? Performa atau runtime server adalah yang kedua karena kami dapat meng-host server sendiri atau sesuatu seperti itu :)

Jawaban:


11

Menggunakan Overpass turbo, sintaksnya adalah:

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

nwradalah kependekan dari node- way-relation


Itu membantu saya menulis ">;" setelah braket putaran penutup ");" dan sebelum "keluar". Kalau tidak, tidak ada node dengan koordinat di peta yang ditampilkan.
qräbnö

@ qräbnö Anda benar, saya memperbarui jawaban saya.
AndreJ

7

Plugin Quick OSM untuk QGIS menghasilkan query Overpass yang berfungsi sebagai berikut:

<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>

untuk detail, lihat Overpass turbo / Extended Overpass Queries

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.