Üstgeçit-API'sini ülkeye göre filtreleme


9

Böyle bir üstgeçit-api isteğinin nasıl gerçekleştirileceğini bilen var mı?

"Bana Almanya'daki tüm bankaları göster"?

Sadece 'amenity = bank' ı belirli bir sınırlama kutusunda gösterebilirim. Ancak Almanya (veya tüm ülkelerin çoğu) böyle bir bbox'a çok iyi uymuyor.

Bunu yapmanın bir yolu var mı? Bir örnek var mı? Sunucu performansı veya çalışma süresi ikincil çünkü kendi sunucumuzu veya bunun gibi bir şeyi barındırabiliriz :)

Yanıtlar:


11

Üstgeçit turbo kullanıldığında, söz dizimi:

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

nwrkısaca node- way-relation


">;" Yazmama yardımcı oldu kapanış yuvarlak köşeli ayraç ");" ve önce "dışarı". Aksi takdirde haritada koordinat içeren düğüm gösterilmemiştir.
qräbnö

@ qräbnö haklısın, cevabımı güncelledim.
AndreJ

7

QGIS için Quick OSM eklentisi aşağıdaki çalışan Üstgeçit sorgusunu oluşturur:

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

Ayrıntılar için bkz. Üstgeçit turbo / Genişletilmiş Üstgeçit Sorguları

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.