overpass/main.py

56 lines
1.6 KiB
Python

from overpass import load_pois, OverpassApiError
from models import POI
import logging
from queries.bergbahn import BERGBAHN_QUERY
from queries.restaurant import RESTAURANT_QUERY
# ---------------------------------------------------------------------------
# Logging konfigurieren
# ---------------------------------------------------------------------------
# Erinnerung: Log-Levels -> DEBUG, INFO, WARNING, ERROR, CRITICAL
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s [%(levelname)s] %(message)s",
datefmt="%H:%M:%S",
)
logger = logging.getLogger(__name__)
# ---------------------------------------------------------------------------
# Konfiguration
# ---------------------------------------------------------------------------
BBOXEN = {
"davos": (46.72, 9.70, 46.92, 10.00),
"schweiz": (45.8, 5.9, 47.8, 10.5),
}
QUERY = {"bergbahn": BERGBAHN_QUERY}
# ---------------------------------------------------------------------------
# Hauptlogik
# ---------------------------------------------------------------------------
def main() -> None:
query_name = list(QUERY.keys())[0]
for name, bbox in BBOXEN.items():
logger.info(f"Starte Abfrage für Query: {query_name}, '{name}' mit bbox={bbox}")
try:
pois: list[POI] = load_pois(overpass_query=QUERY.get(query_name,""), bbox=bbox)
except OverpassApiError as exc:
logger.error(f"Fehler bei '{name}': {exc}")
continue
logger.info(f"\n{name}: {len(pois)} POIs gefunden")
for poi in pois:
logger.info(f" {poi.id}: ({poi.lat}, {poi.lon})")
if __name__ == "__main__":
main()