37 lines
823 B
Python
37 lines
823 B
Python
import requests
|
|
from pprint import pprint
|
|
|
|
|
|
OVERPASS_URL = "https://overpass-api.de/api/interpreter"
|
|
|
|
BERGBAHN_QUERY = """
|
|
[out:json][timeout:3][maxsize:500000];
|
|
(
|
|
node["aerialway"="station"]({bbox});
|
|
way["aerialway"="station"]({bbox});
|
|
node["railway"="funicular"]({bbox});
|
|
way["railway"="funicular"]({bbox});
|
|
node["railway"="station"]["funicular"="yes"]({bbox});
|
|
);
|
|
out center body;
|
|
"""
|
|
|
|
|
|
def fetch_bergbahnen(bbox) -> dict:
|
|
bbox_str = ",".join(map(str, bbox))
|
|
query = BERGBAHN_QUERY.format(bbox=bbox_str)
|
|
|
|
resp = requests.post(
|
|
OVERPASS_URL,
|
|
data={"data": query},
|
|
timeout=5,
|
|
headers={"User-Agent": "CDS Exercise"},
|
|
)
|
|
return resp.json()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
bbox = (46.72, 9.70, 46.92, 10.00)
|
|
result = fetch_bergbahnen(bbox)
|
|
pprint(result) |