Lọc API vượt qua theo quốc gia


9

Có ai biết làm thế nào để thực hiện một yêu cầu vượt cầu như thế này không?

"Cho tôi xem tất cả các ngân hàng ở Đức"?

Tôi chỉ có thể hiển thị tất cả 'tiện ích = ngân hàng' trong một khung giới hạn cụ thể. Nhưng Đức (hoặc hầu hết tất cả các quốc gia) không phù hợp lắm trong một hộp như vậy.

Có cách nào để làm điều này? Bạn có một ví dụ? Hiệu suất máy chủ hoặc thời gian chạy là thứ yếu vì chúng tôi có thể lưu trữ một máy chủ của riêng mình hoặc đại loại như thế :)

Câu trả lời:


11

Sử dụng Overpass turbo, cú pháp là:

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

nwrlà viết tắt của node- way-relation


Nó giúp tôi viết ">;" sau dấu ngoặc tròn đóng ");" và trước khi "ra". Mặt khác, không có nút nào có tọa độ trong bản đồ được hiển thị.
qräbnö

@ qräbnö bạn nói đúng, tôi đã cập nhật câu trả lời của tôi.
AndreJ

7

Plugin Quick OSM cho QGIS tạo ra truy vấn Overpass hoạt động sau:

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

để biết chi tiết, hãy xem Overpass turbo / Extended Overpass Queries

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.